{"openapi":"3.0.3","info":{"title":"CoinDesk.com Market, Index, Reference Data, News and Overview Metrics API for the Cryptocurrency Industry","description":"# CoinDesk.com  is the world's leading digital asset data company, providing services that cater to corporate, government and retail clients. \n\n### Our main reference index is widely recognized as a reliable benchmark, and we have been authorized by the Financial Conduct Authority (FCA) in the United Kingdom to operate as [a benchmark administrator](https://register.fca.org.uk/s/firm?id=0014G00002ZchX7QAJ). \n        \nIn addition to catering to corporate, government, and retail clients, we offer a range of services including comprehensive market data for cryptocurrency exchanges in both the centralized and decentralized finance sectors, as well as individual asset data on custodians, supported platforms, and privacy solutions. \n        \nOur offerings include price, volume, trade, and orderbook updates, as well as historical OHLCV data.\n\nYou can browse the menu on the left in order to discover all the endpoints available. There is also a menu just above this to discover all the sections available. \n\n### Some of the endpoints in our API require a registered account. Please make sure to create an account and create an API Key.","termsOfService":"https://www.cryptocompare.com/terms-conditions/","contact":{"name":"API Support","url":"https://cryptocompare.zendesk.com/hc/en-gb/requests/new","email":"data@coindesk.com"},"license":{"name":"CoinDesk.com API License Agreement","url":"https://www.cryptocompare.com/api-licence-agreement/"},"version":"2.1.1976"},"servers":[{"url":"https://data-api.cryptocompare.com","description":"Production API load balancer URL."}],"paths":{"/index/cc/v1/latest/tick":{"get":{"summary":"Instrument Latest Tick","description":"This endpoint provides the latest tick data for selected index instruments across various indices, offering real-time insights into index values and comprehensive OHLC (Open, High, Low, Close) metrics, aggregated over multiple time intervals. By capturing the most up-to-date index information, it enables precise analysis and decision-making in a fast-moving market environment.","x-extended-description-with-markdown":"This endpoint provides the latest tick data for selected index instruments across various indices, offering real-time insights into index values and comprehensive OHLC (Open, High, Low, Close) metrics, aggregated over multiple time intervals. By capturing the most up-to-date index information, it enables precise analysis and decision-making in a fast-moving market environment. \n        \nThe endpoint supports four response types, each designed to serve specific index data requirements and methodologies:\n- **Type 246 (Direct Trading Methodology - e.g., CCIX)**: Delivers accurate index values based on direct trading activities, using consistent base and quote pairs to represent real-time prices.\n- **Type 266 (Real-Time Adaptive Methodology - e.g., CADLI/USD)**: Aggregates prices from all asset pairs into a single currency, providing comprehensive price discovery and understanding of asset price dynamics.\n- **Type 985 (Real-Time Adaptive Methodology + Conversion)**: Applies CADLI's aggregation to derive a USD price for assets, offering flexibility in analyzing multiple currencies or digital assets through conversion.\n- **Type 987 (Real-Time Adaptive Methodology + Inversion)**: Extends the CADLI USD methodology by enabling value inversions, allowing USD values to be converted into other currencies or assets for diverse financial analysis.\n\n### Key Features\n- **Real-Time Tick Data**: Access the latest tick data with detailed index values and aggregated OHLC metrics for various timeframes.\n- **Multiple Methodologies**: Choose between direct trading prices, adaptive price aggregation, and methodologies involving currency conversion and inversion.\n- **Comprehensive Market Coverage**: Index data for diverse instruments across multiple indices, providing a holistic view of price dynamics.\n- **Granular Timeframes**: Data aggregated across multiple time intervals, allowing for both short-term and long-term market analysis.\n\n### Use Cases\n- **Real-Time Decision-Making**: Traders and algorithms leverage the most current tick data to make precise and timely trading decisions based on live market conditions.\n- **Market Trend Analysis**: Analysts use minutely and hourly data to detect short-term trends, while daily aggregated data supports longer-term strategy development.\n- **Price Discovery and Asset Analysis**: Indexes that aggregate prices across various pairs help market participants understand the true value of assets in real-time.\n- **Financial Reporting and Compliance**: Ensures timely and accurate data for auditing and regulatory purposes, allowing for thorough reporting and analysis.\n\n### Target Audience\n- **High-Frequency Traders**: Rely on up-to-the-moment tick data to inform split-second trading decisions.\n- **Intraday Traders**: Use granular data to optimize trades and manage risk within the trading day.\n- **Financial Analysts and Portfolio Managers**: Utilize daily and long-term trends to inform portfolio adjustments and strategic decisions.\n- **Compliance Professionals**: Depend on detailed and timely index data to meet regulatory standards and audit requirements.\n\n### Data Handling Notes\n- **Handling Aggregated Data**: Each tick offers aggregated OHLC metrics across various intervals, so users can select the most relevant timeframe for their analysis.\n- **Index Name Selection:** Users provide the index name (e.g., CADLI, CCIX) in their request, and the appropriate message type (246, 266, 985, or 987) is automatically returned based on the index's methodology and use case. There is no need to manually select the message type.\n\nYou can read the full product description for CADLI (the CoinDesk Adaptive Diversified Liquidity Index) on our [CADLI reference rate product and methodology page](https://ccdata.io/indices/cadli).\nYou can read the full product description for CCIX (formerly CCCAGG) on our [CCIX reference rate product and methodology page](https://ccdata.io/indices/ccix).","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_latest_tick","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":true,"x-endpoint-group-id":"index_cc_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instruments","in":"query","description":"A comma separated array of instruments to retrieve for a specific market.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","VALUE","LAST_UPDATE","LAST_ADJUSTED","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{"ID":{"name":"ID","description":"Identifies the market, instrument, or data source with key metadata."},"VALUE":{"name":"VALUE","description":"Represents the latest value for an index or instrument, often used to track real-time price or metric changes."},"LAST_UPDATE":{"name":"LAST_UPDATE","description":"Contains information about the timestamp and value of the most recent market update."},"LAST_ADJUSTED":{"name":"LAST_ADJUSTED","description":"The LAST_ADJUSTED group captures metrics that reflect the most recent tick's adjusted values, incorporating any delayed or updated trades within the last hour. These fields are essential for providing accurate real-time insights into market activity and liquidity."},"CURRENT_HOUR":{"name":"CURRENT_HOUR","description":"Aggregated data for the current hour. Useful for intraday analysis."},"CURRENT_DAY":{"name":"CURRENT_DAY","description":"Provides metrics aggregated for the current day. Useful for tracking daily performance."},"CURRENT_WEEK":{"name":"CURRENT_WEEK","description":"Aggregated metrics for the current week."},"CURRENT_MONTH":{"name":"CURRENT_MONTH","description":"Represents data aggregated for the current calendar month."},"CURRENT_YEAR":{"name":"CURRENT_YEAR","description":"Aggregated data for the current calendar year."},"MOVING_24_HOUR":{"name":"MOVING_24_HOUR","description":"Rolling 24-hour metrics, updated continuously. Useful for monitoring trends outside calendar boundaries."},"MOVING_7_DAY":{"name":"MOVING_7_DAY","description":"Aggregated metrics for the last 7 days, updated on a rolling basis."},"MOVING_30_DAY":{"name":"MOVING_30_DAY","description":"Aggregated metrics for the last 30 days, providing a rolling monthly perspective."},"MOVING_90_DAY":{"name":"MOVING_90_DAY","description":"Metrics for the past 90 days, giving a broader rolling quarterly view."},"MOVING_180_DAY":{"name":"MOVING_180_DAY","description":"Aggregated metrics for the past 180 days, useful for analyzing medium-term trends."},"MOVING_365_DAY":{"name":"MOVING_365_DAY","description":"Rolling metrics for the past year, providing a long-term perspective."},"LIFETIME":{"name":"LIFETIME","description":"Represents all-time metrics since the start of data collection for the specific market or instrument."}}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/historical/days":{"get":{"summary":"Historical OHLCV+ Day","description":"This endpoint is meticulously designed to provide historical candlestick data for various indices, captured at one-day intervals. The data encompasses crucial metrics such as OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+), offering a comprehensive view of an index's historical performance. This information is essential for conducting in-depth market analyses and making informed decisions based on past trends.","x-extended-description-with-markdown":"This endpoint is meticulously designed to provide historical candlestick data for various indices, captured at one-day intervals. The data encompasses crucial metrics such as OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+), offering a comprehensive view of an index's historical performance. This information is essential for conducting in-depth market analyses and making informed decisions based on past trends.\n\nA notable feature of this data is that the **OPEN** value for each day (00:00 GMT) is based on the **CLOSE** value of the preceding day (or the closest previous day that had trading activity). This relationship can potentially influence the **HIGH** and **LOW** values recorded within a day, as they are relative to the starting **OPEN** value. It's important to emphasize that the additional message metrics are derived exclusively from trading activities within the specific day. These extra metrics include:\n\n- **FIRST_MESSAGE_TIMESTAMP**, **FIRST_MESSAGE_VALUE**, **LAST_MESSAGE_TIMESTAMP** - Timestamps and values for the first and last index updates, the LAST_MESSAGE_VALUE is not provided since it is the same as the CLOSE.\n- **HIGH_MESSAGE_VALUE**, **HIGH_MESSAGE_TIMESTAMP**, **LOW_MESSAGE_VALUE**, **LOW_MESSAGE_TIMESTAMP** - The highest and lowest index values within the day, along with their corresponding timestamps.\n- **TOTAL_INDEX_UPDATES** - The total count of index updates during the day.\n- **VOLUME_TOP_TIER**, **QUOTE_VOLUME_TOP_TIER**, **VOLUME_DIRECT**, **QUOTE_VOLUME_DIRECT**, **VOLUME_TOP_TIER_DIRECT**, **QUOTE_VOLUME_TOP_TIER_DIRECT** - In-depth volume information, covering both top-tier and direct trading volumes within the day. These are the total sum of all the trading volume in both the base currency (VOLUME) and quote currency (QUOTE_VOLUME). These extra volume values are **only available** for **CADLI** and other **Real-Time Adaptive Methodology** indices.\n\nIf the 'fill' URL parameter is left empty or set to true (1), then on days with no trading activity, the OPEN, HIGH, LOW, CLOSE values will match the CLOSE of the previous closest hour with trading activity. In such cases, the VOLUME, QUOTE_VOLUME, and TOTAL_INDEX_UPDATES will be set to 0, and all the extra, trading-related metrics described above will be absent. Conversely, setting 'fill=false' in the request URL will exclude days with no trading activity from the response.\n\nThe endpoint features four distinct response types, each tailored to cater to specific historical data requirements:\n\n- **Type 247 (Direct Trading Methodology)**: Delivers historical candlestick data for the CCIX index. This data is pivotal for analyzing the historical price movements and trends specific to the CCIX, offering insights into its long-term performance.\n- **Type 267 (Real-Time Adaptive Methodology)**: Provides historical candlestick information for the CADLI index. This type is specifically designed to facilitate the analysis of CADLI's historical USD price movements, allowing users to track and evaluate its past market behavior.\n- **Type 986 (Real-Time Adaptive Methodology + Conversion)**: Extends the CADLI historical data by incorporating currency conversion factors. This response type is ideal for users requiring historical data on CADLI, adjusted for conversions into other fiat or digital currencies, enabling more diverse financial analyses.\n- **Type 989 (Real-Time Adaptive Methodology + Inversion)**: Offers a unique perspective on CADLI's historical data by applying price inversions. This response type is tailored for users who need to understand the historical USD value in terms of various other currencies or assets, providing a comprehensive inverted price analysis.\n\n### Use Cases\n- **Long-term Trend Analysis**: Investors and analysts can observe the long-term trends in market behavior by examining daily price movements and volume metrics.\n- **Strategic Investment Planning**: Enables portfolio managers to devise long-term investment strategies based on historical performance trends of indices.\n- **Risk Management**: Risk analysts use daily historical data to identify patterns or events that may indicate future risks or opportunities.\n\n### Target Audience\n- **Investment Analysts and Portfolio Managers**: Professionals who make strategic decisions based on long-term market performance.\n- **Financial Historians**: Researchers studying the historical movements of financial markets.\n- **Risk Management Experts**: Analysts who specialize in identifying, analyzing, and mitigating long-term financial risks.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_days","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":true,"x-endpoint-group-id":"index_cc_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{"ID":{"name":"ID","description":"Provides fundamental identifiers and metadata related to market indices and financial instruments."},"OHLC":{"name":"OHLC","description":"Represents Open, High, Low, and Close values for an index during a specific time period. OPEN, HIGH, and LOW are derived from the last message in the previous time bucket, ensuring continuity between time buckets and highlighting trends."},"OHLC_MESSAGE":{"name":"OHLC_MESSAGE","description":"Extends the OHLC group by including granular details about the first, last, highest, and lowest updates in the specified time period. OPEN, HIGH, and LOW are derived from the first message in the current time bucket, providing an immediate snapshot of the bucket’s starting state."},"MESSAGE":{"name":"MESSAGE","description":"Captures metrics related to the volume of updates or messages processed during a specific period."},"VOLUME":{"name":"VOLUME","description":"Represents volume-related metrics for a trading pair or index, essential for understanding liquidity and market activity."}}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/cc/v1/historical/hours":{"get":{"summary":"Historical OHLCV+ Hour","description":"This endpoint is expertly crafted to provide hourly candlestick data for various indices, offering a granular view of index movements within a day. The data includes key metrics like OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+), enabling users to gain a detailed understanding of short-term index behaviors. This granular data is invaluable for users conducting time-sensitive market analysis or those interested in intra-day trading patterns.","x-extended-description-with-markdown":"This endpoint is expertly crafted to provide hourly candlestick data for various indices, offering a granular view of index movements within a day. The data includes key metrics like OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+), enabling users to gain a detailed understanding of short-term index behaviors. This granular data is invaluable for users conducting time-sensitive market analysis or those interested in intra-day trading patterns.\n\nA notable feature of this data is that the **OPEN** value for each hour is based on the **CLOSE** value of the preceding hour (or the closest previous hour that had trading activity). This relationship can potentially influence the **HIGH** and **LOW** values recorded within a hour, as they are relative to the starting **OPEN** value. It's important to emphasize that the additional message metrics are derived exclusively from trading activities within the specific hour. These extra metrics include:\n\n- **FIRST_MESSAGE_TIMESTAMP**, **FIRST_MESSAGE_VALUE**, **LAST_MESSAGE_TIMESTAMP** - Timestamps and values for the first and last index updates, the LAST_MESSAGE_VALUE is not provided since it is the same as the CLOSE.\n- **HIGH_MESSAGE_VALUE**, **HIGH_MESSAGE_TIMESTAMP**, **LOW_MESSAGE_VALUE**, **LOW_MESSAGE_TIMESTAMP** - The highest and lowest index values within the hour, along with their corresponding timestamps.\n- **TOTAL_INDEX_UPDATES** - The total count of index updates during the hour.\n- **VOLUME_TOP_TIER**, **QUOTE_VOLUME_TOP_TIER**, **VOLUME_DIRECT**, **QUOTE_VOLUME_DIRECT**, **VOLUME_TOP_TIER_DIRECT**, **QUOTE_VOLUME_TOP_TIER_DIRECT** - In-depth volume information, covering both top-tier and direct trading volumes within the hour. These are the total sum of all the trading volume in both the base currency (VOLUME) and quote currency (QUOTE_VOLUME). These extra volume values are **only available** for **CADLI** and other **Real-Time Adaptive Methodology** indices.\n\nIf the 'fill' URL parameter is left empty or set to true (1), then on hours with no trading activity, the OPEN, HIGH, LOW, CLOSE values will match the CLOSE of the previous closest hour with trading activity. In such cases, the VOLUME, QUOTE_VOLUME, and TOTAL_INDEX_UPDATES will be set to 0, and all the extra, trading-related metrics described above will be absent. Conversely, setting 'fill=false' in the request URL will exclude hours with no trading activity from the response.\n\nThe endpoint includes four specialized response types, each serving a unique aspect of hourly data analysis:\n\n- **Type 247 (Direct Trading Methodology)**: Provides hourly candlestick data specifically for the CCIX index. This response type is essential for users looking to analyze short-term price movements and trends in the CCIX index, offering insights into its intra-day performance.\n- **Type 267 (Real-Time Adaptive Methodology)**: Delivers hourly candlestick data for the CADLI index. Tailored for an in-depth examination of CADLI's USD price movements within each hour, this type allows users to closely monitor and analyze CADLI's short-term market behavior.\n- **Type 986 (Real-Time Adaptive Methodology + Conversion)**: Enhances the CADLI hourly data with currency conversion factors. It's ideal for users who need intra-day CADLI data adjusted for conversions into other fiat or digital currencies, enabling nuanced financial analysis across different currencies.\n- **Type 989 (Real-Time Adaptive Methodology + Inversion )**: Offers hourly CADLI data with an inversion feature. This type is designed for users seeking to understand the intra-day USD value in terms of other currencies or assets, providing a detailed view of inverted price movements on an hourly basis.\n\n### Use Cases\n- **Intraday Trading Strategy Development**: Traders can develop and refine trading strategies by analyzing how indices move within each hour.\n- **Event-Driven Analysis**: Allows analysts to dissect market reactions to specific hourly news events or economic releases.\n- **Performance Benchmarking**: Enables comparison of hourly performance against broader market movements, helping in performance assessment and adjustment.\n\n### Target Audience\n- **Day Traders and Intraday Analysts**: Professionals focused on short-term trading who rely on hourly fluctuations to make buying and selling decisions.\n- **Quantitative Analysts**: Specialists in developing models that predict short-term market behaviors based on historical data.\n- **Event Analysts**: Researchers focusing on the impact of specific events on market indices within concise time frames.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_hours","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":true,"x-endpoint-group-id":"index_cc_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/cc/v1/historical/minutes":{"get":{"summary":"Historical OHLCV+ Minute","description":"This endpoint is meticulously engineered to deliver candlestick data for various indices at minute-by-minute intervals. It provides detailed and up-to-the-minute metrics including OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+). This high-resolution data is crucial for users engaged in minute-level market analysis, offering insights into the immediate and rapid fluctuations of index values. It is particularly useful for day traders and those conducting short-term market strategies.","x-extended-description-with-markdown":"This endpoint is meticulously engineered to deliver candlestick data for various indices at minute-by-minute intervals. It provides detailed and up-to-the-minute metrics including OPEN, HIGH, LOW, CLOSE, VOLUME and additional trading-derived values (OHLCV+). This high-resolution data is crucial for users engaged in minute-level market analysis, offering insights into the immediate and rapid fluctuations of index values. It is particularly useful for day traders and those conducting short-term market strategies.\n\nA notable feature of this data is that the **OPEN** value for each minute is based on the **CLOSE** value of the preceding minute (or the closest previous minute that had trading activity). This relationship can potentially influence the **HIGH** and **LOW** values recorded within a minute, as they are relative to the starting **OPEN** value. It's important to emphasize that the additional message metrics are derived exclusively from trading activities within the specific minute. These extra metrics include:\n\n- **FIRST_MESSAGE_TIMESTAMP**, **FIRST_MESSAGE_VALUE**, **LAST_MESSAGE_TIMESTAMP** - Timestamps and values for the first and last index updates, the LAST_MESSAGE_VALUE is not provided since it is the same as the CLOSE.\n- **HIGH_MESSAGE_VALUE**, **HIGH_MESSAGE_TIMESTAMP**, **LOW_MESSAGE_VALUE**, **LOW_MESSAGE_TIMESTAMP** - The highest and lowest index values within the minute, along with their corresponding timestamps.\n- **TOTAL_INDEX_UPDATES** - The total count of index updates during the minute.\n- **VOLUME_TOP_TIER**, **QUOTE_VOLUME_TOP_TIER**, **VOLUME_DIRECT**, **QUOTE_VOLUME_DIRECT**, **VOLUME_TOP_TIER_DIRECT**, **QUOTE_VOLUME_TOP_TIER_DIRECT** - In-depth volume information, covering both top-tier and direct trading volumes within the minute. These are the total sum of all the trading volume in both the base currency (VOLUME) and quote currency (QUOTE_VOLUME). These extra volume values are **only available** for **CADLI** and other **Real-Time Adaptive Methodology** indices.\n\nIf the 'fill' URL parameter is left empty or set to true (1), then on minutes with no trading activity, the OPEN, HIGH, LOW, CLOSE values will match the CLOSE of the previous closest minute with trading activity. In such cases, the VOLUME, QUOTE_VOLUME, and TOTAL_INDEX_UPDATES will be set to 0, and all the extra, trading-related metrics described above will be absent. Conversely, setting 'fill=false' in the request URL will exclude minutes with no trading activity from the response.\n\nThe endpoint is equipped with four tailored response types, each designed to address specific needs in minute-level data analysis:\n\n- **Type 247 (Direct Trading Methodology)**: Supplies minute-by-minute candlestick data for the CCIX index. This data is invaluable for users needing to analyze the immediate price movements and trends of the CCIX, providing a detailed view of its fluctuation patterns at the minutest level.\n- **Type 267 (Real-Time Adaptive Methodology)**: Offers minute-level candlestick data for the CADLI index. This response type is specifically designed for a close examination of CADLI's USD price movements on a minute-by-minute basis, facilitating real-time tracking and analysis of its market behavior.\n- **Type 986 (Real-Time Adaptive Methodology + Conversion)**: Extends CADLI minute-level data with currency conversion factors. Ideal for users requiring real-time CADLI data adjusted for conversions into various fiat or digital currencies, it enables a thorough analysis of currency-specific market movements.\n- **Type 989 (Real-Time Adaptive Methodology + Inversion )**: Provides a unique perspective on CADLI's minute-level data through the application of price inversions. Tailored for those who need to understand the immediate USD value in terms of other currencies or assets, this type offers a comprehensive analysis of inverted price dynamics on a minute-by-minute basis.\n\n### Use Cases\n- **High-Frequency Trading (HFT) Strategy Optimization**: Essential for HFT where algorithms need to execute orders based on minute-by-minute data analysis.\n- **Micro Trend Analysis**: Traders can examine the minutest price and volume changes to capture short-lived opportunities.\n- **Algorithm Backtesting**: Provides data for backtesting algorithms against very granular historical data to ensure robustness in live trading.\n\n### Target Audience\n- **High-Frequency Traders (HFTs)**: Traders who operate on extremely short time frames, requiring precise and rapid data to make decisions.\n- **Algorithmic Traders**: Developers and traders who create and refine algorithms that trade based on minute-to-minute market data.\n- **Technical Analysts**: Analysts who use detailed charts to predict future movements based on past patterns observed at a granular level.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_minutes","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":true,"x-endpoint-group-id":"index_cc_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/cc/v1/historical/days/ccda":{"get":{"summary":"DA Fixings","description":"CoinDesk Digital Asset Fixing Indices (“DA Fixings”) is a settlement index calculation method aimed at providing digital asset traders, investors, and asset managers with an accurate and market-representative end-of-day price for portfolio valuation. It uses CoinDesk unique 10-minute time-weighted average calculation based on the CCIX benchmark, which is regulated by the FCA.","x-extended-description-with-markdown":"CoinDesk Digital Asset Fixing Indices (“DA Fixings”) is a settlement index calculation method aimed at providing digital asset traders, investors, and asset managers with an accurate and market-representative end-of-day price for portfolio valuation. It uses CoinDesk unique 10-minute time-weighted average calculation based on the CCIX benchmark, which is regulated by the FCA.\n\nA settlement index is a financial benchmark used to determine the final price of an asset at the end of a trading period. It represents the fair market value of the asset, calculated using a specific methodology that ensures accuracy and reliability. Settlement indices are crucial for portfolio valuation, financial reporting, and the settlement of derivative contracts. They provide a standardized reference point that market participants can rely on for end-of-day pricing.\n\n### Key Features\n- **Calculation Methodology**: The index utilises a 10-minute time-weighted average to deliver a precise and market-responsive price calculation.\n- **Regulatory Compliance**: Underpinning DA Fixings is CoinDesk FCA-regulated benchmark, CCIX. This regulatory aspect provides standardisation to the index, ensuring alignment with established financial regulations.\n- **Portfolio Valuation**: By providing an accurate and market-representative price, DA Fixings plays a crucial role in the valuation process of digital asset portfolios.\n\n### Target Audience\n- **Digital Asset Traders**: DA Fixings offers a reliable tool for traders to assess the end-of-day value of their digital assets.\n- **Investors**: Investors benefit from an accurate and regulated benchmark for portfolio valuation, enhancing confidence in their asset assessments.\n- **Asset Managers**: Asset managers can rely on DA Fixings for precise end-of-day pricing, crucial for fund management and reporting.\n- **ETF Managers**: DA Fixings provides ETF managers with an accurate valuation, ensuring the integrity and accuracy of exchange-traded funds that include digital assets.\n\nRead our announcement blog post [Introducing DA Fixings: CoinDesk Robust Framework for Digital Assets Pricing](https://ccdata.io/blogs/introducing-da-fixing-ccdatas-robust-framework-for-digital-assets-pricing) or [visit our Digital Asset Fixing Indices page for more information](https://ccdata.io/indices/da-fixings).","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_days_ccda","x-section":"Indices & Ref. Rates","x-roles-required":["free","free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_historical_days_ccda","x-endpoint-group-name":"DA Fixings","parameters":[{"name":"instrument","in":"query","description":"The instrument to retrieve from ccix.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"BTC-USD","minLength":0,"maxLength":30},"example":"BTC-USD"},{"name":"timezone","in":"query","description":"The timezone of the close_time you are interested in.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["America/Los_Angeles","America/Mexico_City","America/New_York","America/Toronto","America/Buenos_Aires","America/Sao_Paulo","Europe/London","Europe/Zurich","Europe/Bucharest","Europe/Istanbul","Europe/Moscow","Africa/Casablanca","Africa/Lagos","Africa/Johannesburg","Africa/Cairo","Asia/Kolkata","Asia/Shanghai","Asia/Hong_Kong","Asia/Singapore","Asia/Tokyo","Australia/Sydney","UTC"],"x-enum-properties-info":{}},"example":"Europe/London"},{"name":"date","in":"query","description":"The date you are interested in. If not passed in, it would default to the current day.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string"},"example":"2023-10-30"},{"name":"close_time","in":"query","description":"The time you are interested in.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string"},"example":"16:00"},{"name":"limit","in":"query","description":"The number of days to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":10},"example":5},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_DATA_FIXINGS_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v2/historical/messages/hour":{"get":{"summary":"Index Updates Full Hour","description":"This endpoint provides historical tick-level data for reference rate indices covering complete hourly intervals. Designed for efficient backfilling of data, it allows users to access a consolidated view of all ticks within any given hour. This capability is particularly valuable for applications needing to reconstruct past market conditions or analyze market behavior at a granular hourly level without the need for continuous data monitoring. By providing hourly snapshots, this endpoint facilitates easier data management and quicker integration into historical analysis workflows.","x-extended-description-with-markdown":"This endpoint provides historical tick-level data for reference rate indices covering complete hourly intervals. Designed for efficient backfilling of data, it allows users to access a consolidated view of all ticks within any given hour. This capability is particularly valuable for applications needing to reconstruct past market conditions or analyze market behavior at a granular hourly level without the need for continuous data monitoring. By providing hourly snapshots, this endpoint facilitates easier data management and quicker integration into historical analysis workflows.\n\n### Use Cases\n- **Historical Market Analysis**: Facilitate the study of market trends and behaviors over specified hourly intervals.\n- **Backfilling Missing Data**: Enable users to efficiently fill data gaps in their historical datasets.\n- **Quantitative Research**: Assist researchers in performing robust back-tests of trading strategies across various market conditions.\n\n### Target Audience\n- **Data Scientists**: Researchers and analysts who require large blocks of historical data for modeling and analysis.\n- **Back-office Personnel**: Staff responsible for maintaining complete and accurate trading records.\n- **Quantitative Researchers**: Academics and financial industry professionals conducting detailed analyses of market conditions.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v2_historical_messages_hour","x-section":"Indices & Ref. Rates","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_historical_message","x-endpoint-group-name":"Index Updates","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MESSAGE","STATUS"],"items":{"type":"string","enum":["ID","MAPPING","MESSAGE","COMPONENTS","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the index updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all index updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1701176400},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid index updates from the response. Invalid index updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid index updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid index updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any index updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v2/historical/messages":{"get":{"summary":"Index Updates By Timestamp","description":"This endpoint retrieves historical tick-level data for reference rate indices starting from a specified timestamp. Tailored for keeping users up to date with the latest data, it allows for precise targeting of the exact moment from which the data retrieval should begin. This functionality is essential for applications that require continuous data updates, such as dynamic risk management tools or real-time analytics platforms. Users can specify a starting timestamp, ensuring they receive all subsequent ticks, thereby maintaining an up-to-the-minute view of market movements without any gaps in data.","x-extended-description-with-markdown":"This endpoint retrieves historical tick-level data for reference rate indices starting from a specified timestamp. Tailored for keeping users up to date with the latest data, it allows for precise targeting of the exact moment from which the data retrieval should begin. This functionality is essential for applications that require continuous data updates, such as dynamic risk management tools or real-time analytics platforms. Users can specify a starting timestamp, ensuring they receive all subsequent ticks, thereby maintaining an up-to-the-minute view of market movements without any gaps in data.\n\n### Key Features\n- **Granular Index Update Data**: Access detailed index update information including timestamps with nanosecond precision, values, quantities, and components data.\n- **Unique CCSEQ Numbers**: Each index update includes an individual CryptoCompare Sequence (CCSEQ) number for precise tracking and sequencing.\n- **Real-Time Data Retrieval**: Obtain data starting from any given timestamp to focus on specific calculation periods or events.\n\n### Use Cases\n- **Real-Time Analytics**: Enable analysts to continuously update their models and dashboards with the most recent data.\n- **Dynamic Risk Management**: Provide risk managers with the ability to monitor and respond to live market changes.\n- **Event-Driven Trading**: Support trading strategies that react to market events as they unfold in real time.\n\n### Target Audiences\n- **Financial Data Analysts**: Those requiring the latest market data for immediate analysis.\n- **Risk Managers**: Professionals who need to keep track of real-time market fluctuations to manage exposure effectively.\n- **Algorithmic Traders**: Traders who utilize real-time data feeds to automate trading based on current market conditions.\n\n### Data Handling Notes\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_INDEX_UPDATE_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: If all returned index updates share the same timestamp, refine your pagination by including both the timestamp of the last index update in the after_ts parameter and its CCSEQ in the last_ccseq parameter. Always adding last_ccseq in your requests ensures seamless pagination without missing any index updates.\n- **Skipping Invalid Index Updates**: To maintain data accuracy, there are instances where index updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid index updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all index updates. For comprehensive data, we recommend not skipping invalid index updates.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest index updates, it is not efficient for backfilling historical data or catching up on multiple days of missed index updates. For backfilling, use the [Index Updates Full Hour Endpoint](/documentation/data-api/index_cc_v2_historical_messages_hour) instead. This endpoint stores index updates in hourly batches, which can contain up to 5 million index updates per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nBy leveraging this endpoint, users gain access to high-resolution index update data essential for precise market analysis, application development, and strategic planning in the dynamic cryptocurrency trading environment.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v2_historical_messages","x-section":"Indices & Ref. Rates","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_historical_message","x-endpoint-group-name":"Index Updates","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MESSAGE","STATUS"],"items":{"type":"string","enum":["ID","MAPPING","MESSAGE","COMPONENTS","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest index message in the response","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1701176400},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"limit","in":"query","description":"The maximum number of index messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000}},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid index updates from the response. Invalid index updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid index updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid index updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any index updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"This endpoint within the Index + Reference Rates section of the API is specifically tailored to deliver crucial metadata about financial instruments linked to a particular index. It provides detailed, non-metric related metadata, including mapping, status, and historical tracking data (first seen and last seen timestamps) for instruments associated with a chosen index.","x-extended-description-with-markdown":"This endpoint within the Index + Reference Rates section of the API is specifically tailored to deliver crucial metadata about financial instruments linked to a particular index. It provides detailed, non-metric related metadata, including mapping, status, and historical tracking data (first seen and last seen timestamps) for instruments associated with a chosen index. It does not include index values or performance metrics, focusing instead on providing a comprehensive dataset necessary for understanding and managing the instruments within the context of their index.\n\n### Use Cases\n- **Index Tracking and Management**: Enables institutions to maintain accurate records of all instruments tied to specific indexes, crucial for tracking index composition changes over time.\n- **Compliance and Regulatory Reporting**: Helps compliance officers ensure that all instruments within an index adhere to regulatory standards, providing historical data and current status necessary for thorough compliance checks.\n- **Data Integration for Index Funds**: Facilitates the integration and management of instrument data for funds that track or replicate the performance of an index.\n- **Historical Analysis for Index Strategy Development**: Provides the detailed historical context needed for developing or refining index-based trading strategies.\n\n### Target Audience\n- **Index Fund Managers**: Professionals managing index funds who require detailed metadata about the instruments that make up their index.\n- **Compliance Officers**: Regulatory professionals focused on ensuring all instruments within an index meet compliance standards.\n- **Financial Data Analysts**: Analysts who need comprehensive metadata for instruments to support in-depth market analysis or research related to indices.\n- **IT and Data Integration Specialists**: Individuals responsible for integrating and managing large datasets related to financial indices in trading platforms or analytical tools.\n\nThis endpoint is an essential tool for financial professionals and organizations focusing on indices and index-based instruments, providing them with the detailed data necessary for effective management, compliance, analysis, and strategy development.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_latest_instrument_metadata","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cadli"},{"name":"instruments","in":"query","description":"A comma separated array of instruments to retrieve for a specific market.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","MIGRATION","INTERNAL","FIRST_INDEX_UPDATE","LAST_INDEX_UPDATE"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_WITH_VOLUME_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/markets":{"get":{"summary":"Markets (Indices & Ref. Rates)","description":"This endpoint provides comprehensive information about cryptocurrency indices. When provided with a specific index identifier via the \"market\" parameter, it returns detailed data about that particular index. If the \"market\" parameter is not specified, the endpoint returns information on all available indices. The data returned includes metadata such as the launch date of the index, its ranking, the number of instruments listed, and other relevant details. This endpoint is valuable for users seeking to analyze or track various cryptocurrency indices and find out what is available on our platform.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about cryptocurrency indices. When provided with a specific index identifier via the \"market\" parameter, it returns detailed data about that particular index. If the \"market\" parameter is not specified, the endpoint returns information on all available indices. The data returned includes metadata such as the launch date of the index, its ranking, the number of instruments listed, and other relevant details. This endpoint is valuable for users seeking to analyze or track various cryptocurrency indices and find out what is available on our platform.\n\n### Use Cases\n- **Market Analysis**: Investors and analysts can use this endpoint to obtain detailed data about different cryptocurrency markets, helping them make informed investment decisions based on market size, activity, and growth.\n- **Integration and Automation**: Developers building applications that require cryptocurrency market data can use this endpoint to integrate real-time data about various markets, enhancing the app's functionality.\n- **Research and Reporting**: Academics and researchers can extract historical data for multiple markets, aiding in studies or reports that assess market trends, trade volumes, and instrument listings.\n- **Competitive Analysis**: Companies and businesses can use this endpoint to compare various cryptocurrency markets, assessing competitive advantages or identifying potential markets for entry.\n\n### Target Audience\n- **Cryptocurrency Investors**: Individual or institutional investors looking for detailed information about various markets to guide their investment strategies.\n- **Application Developers**: Developers creating apps that need to display or use real-time data about cryptocurrency markets.\n- **Market Analysts**: Financial analysts requiring extensive data for market analysis, trend identification, and investment advisement.\n- **Academic Researchers**: Researchers studying the cryptocurrency market dynamics and looking for comprehensive market data to support their academic papers or insights.","tags":["Deprecated"],"operationId":"index_cc_v1_markets","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_markets","x-endpoint-group-name":"Markets (Indices & Ref. Rates)","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap",""],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":0,"maxLength":30},"example":"cadli"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"index_cc_v2_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v2/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about cryptocurrency indices. When provided with a list of index identifiers via the \"markets\" parameter, it returns detailed data about those particular indices. If the \"markets\" parameter is not specified, the endpoint returns information on all available indices. The data returned includes metadata such as the launch date of the index, its ranking, the number of instruments listed, and other relevant details. This endpoint is valuable for users seeking to analyze or track various cryptocurrency indices and find out what is available on our platform.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about cryptocurrency indices. When provided with a list of index identifiers via the \"markets\" parameter, it returns detailed data about those particular indices. If the \"markets\" parameter is not specified, the endpoint returns information on all available indices. The data returned includes metadata such as the launch date of the index, its ranking, the number of instruments listed, and other relevant details. This endpoint is valuable for users seeking to analyze or track various cryptocurrency indices and find out what is available on our platform.\n\n### Use Cases\n- **Market Analysis**: Investors and analysts can use this endpoint to obtain detailed data about different cryptocurrency markets, helping them make informed investment decisions based on market size, activity, and growth.\n- **Integration and Automation**: Developers building applications that require cryptocurrency market data can use this endpoint to integrate real-time data about various markets, enhancing the app's functionality.\n- **Research and Reporting**: Academics and researchers can extract historical data for multiple markets, aiding in studies or reports that assess market trends, trade volumes, and instrument listings.\n- **Competitive Analysis**: Companies and businesses can use this endpoint to compare various cryptocurrency markets, assessing competitive advantages or identifying potential markets for entry.\n\n### Target Audience\n- **Cryptocurrency Investors**: Individual or institutional investors looking for detailed information about various markets to guide their investment strategies.\n- **Application Developers**: Developers creating apps that need to display or use real-time data about cryptocurrency markets.\n- **Market Analysts**: Financial analysts requiring extensive data for market analysis, trend identification, and investment advisement.\n- **Academic Researchers**: Researchers studying the cryptocurrency market dynamics and looking for comprehensive market data to support their academic papers or insights.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v2_markets","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v2_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The index families to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap",""],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]}}},"example":["cadli"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves a dictionary containing details of one or more mapped instruments across various indices, categorized by their operational state or status. It uses the instrument ID, as defined by our mapping team, as the key. The response primarily includes instruments that have been mapped, ensuring that each instrument like XXBTZUSD is accurately associated with its corresponding market pair such as BTC-USD. The endpoint also details the status of instruments (e.g., ACTIVE, RETIRED) and includes extensive metadata such as total updates, first and last index update timestamps, and specific mapping details. This endpoint is essential for users needing precise, mapped information on financial instruments and their statuses across different indices.","x-extended-description-with-markdown":"This endpoint retrieves a dictionary containing details of one or more mapped instruments across various indices, categorized by their operational state or status. It uses the instrument ID, as defined by our mapping team, as the key. The response primarily includes instruments that have been mapped, ensuring that each instrument like XXBTZUSD is accurately associated with its corresponding market pair such as BTC-USD. The endpoint also details the status of instruments (e.g., ACTIVE, RETIRED) and includes extensive metadata such as total updates, first and last index update timestamps, and specific mapping details. This endpoint is essential for users needing precise, mapped information on financial instruments and their statuses across different indices.\n\n### Use Cases\n- **Data Validation**: Financial analysts and data scientists can use this endpoint to verify the accuracy and mapping of financial instruments, ensuring that data used in analysis or reporting is precise and up-to-date.\n- **Market Monitoring**: Traders and market analysts can monitor the status of instruments across indices to understand active, retired, or ignored instruments, aiding in better investment decisions.\n- **Regulatory Compliance**: Compliance officers can utilize this endpoint to ensure that all financial instruments used or reported are correctly mapped and meet regulatory standards.\n- **Integration in Financial Platforms**: Fintech developers can integrate this endpoint into their platforms to provide users with accurate and real-time information about various instruments and their status, enhancing user experience and trust in the data provided.\n\n### Target Audience\n- **Financial Analysts**: Professionals who need to ensure the data they are working with is accurately mapped and represents the correct market instruments.\n- **Fintech Developers**: Developers building financial applications that require integration of precise instrument data and status.\n- **Regulatory Compliance Officers**: Individuals ensuring that financial instruments and their mappings comply with regulatory standards.\n- **Data Scientists**: Researchers and scientists who rely on precise and mapped data for algorithm development, market prediction models, and data analysis projects.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_markets_instruments","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap",""],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":0,"maxLength":30},"example":"cadli"},{"name":"instruments","in":"query","description":"A comma separated array of instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint provides a comprehensive list of all instruments available on a specified index, including those that have not yet been mapped by our team. It is particularly useful for users who need access to a wide range of instruments, regardless of their mapping status. The endpoint caters to scenarios where users may be familiar with the internal instrument ID used on the index and do not require the standardized format typically provided through mapping. This functionality is crucial for discovering new index instruments or for operations that need rapid identification and utilization of various financial instruments without standardized mapping constraints.","x-extended-description-with-markdown":"This endpoint provides a comprehensive list of all instruments available on a specified index, including those that have not yet been mapped by our team. It is particularly useful for users who need access to a wide range of instruments, regardless of their mapping status. The endpoint caters to scenarios where users may be familiar with the internal instrument ID used on the index and do not require the standardized format typically provided through mapping. This functionality is crucial for discovering new index instruments or for operations that need rapid identification and utilization of various financial instruments without standardized mapping constraints.\n\n### Use Cases\n- **Comprehensive Retrieval**: Essential for internal reviews and operational adjustments, this endpoint allows CoinDesk team members to access a full list of instruments related to our reference rates and other internal indices.\n- **Future Expansion and Adaptation**: As our mapping capabilities expand, this endpoint will adapt to include newly mapped instruments, making it a versatile tool for future development and integration.\n- **Rapid Instrument Access**: For quick decision-making and operational tasks, this endpoint facilitates immediate access to instruments using internal IDs, streamlining processes within our systems.\n- **Research and Development**: Supports our internal research and development efforts by providing a comprehensive dataset that can be used to test new models and analytics tailored to our indices.\n\n### Target Audience\n- **Internal CoinDesk Teams**: Analysts, developers, and operational staff within CoinDesk who require exhaustive lists of instruments for internal operations, monitoring, and strategic development.\n- **Fintech Developers**: Developers engaged in integrating or upgrading financial applications with CoinDesk internal indices, ensuring they have the most complete and up-to-date instrument data.\n- **Strategic Planners and Analysts**: Professionals involved in the planning and analysis of CoinDesk market strategies, especially those focusing on the evolution and expansion of our indices.\n- **Research and Development Specialists**: Members of the R&D department who analyze comprehensive market data to enhance and refine CoinDesk services and offerings.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_markets_instruments_unmapped","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap",""],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":0,"maxLength":30},"example":"cadli"},{"name":"instruments","in":"query","description":"A comma separated array of instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/latest/tick/forex":{"get":{"summary":"Forex Rates Latest Tick","description":"This endpoint is specifically tailored for retrieving the latest tick data for forex instruments. It offers detailed and current forex market information, focusing primarily on the most recent prices of selected forex pairs. Additionally, it provides comprehensive OHLC (Open, High, Low, Close) metrics that are aggregated across various time intervals. This endpoint is essential for users who need up-to-the-minute price data and detailed historical price dynamics of forex pairs for immediate analysis or decision-making. It is designed to support high-frequency trading, real-time market monitoring, and detailed financial analysis in the forex markets.","x-extended-description-with-markdown":"This endpoint is specifically tailored for retrieving the latest tick data for forex instruments. It offers detailed and current forex market information, focusing primarily on the most recent prices of selected forex pairs. Additionally, it provides comprehensive OHLC (Open, High, Low, Close) metrics that are aggregated across various time intervals. This endpoint is essential for users who need up-to-the-minute price data and detailed historical price dynamics of forex pairs for immediate analysis or decision-making. It is designed to support high-frequency trading, real-time market monitoring, and detailed financial analysis in the forex markets.\n\n### Use Cases\n- **Real-Time Trading**: Forex traders can use this endpoint to access immediate price data for making quick, informed trading decisions.\n- **Market Analysis**: Financial analysts can use the detailed OHLC data for deep market analysis, trend identification, and to support investment strategies.\n- **Algorithmic Trading**: Developers creating algorithmic trading systems can integrate this real-time data to enhance trading algorithms based on current market conditions.\n- **Risk Management**: Financial institutions can utilize the latest forex data to manage and adjust their market exposure based on real-time price movements and historical price patterns.\n\n### Target Audience\n- **Forex Traders**: Individual and institutional traders needing the latest prices to execute trades effectively.\n- **Financial Analysts**: Professionals who require detailed price metrics and historical data to analyze forex market trends and dynamics.\n- **Algorithm Developers**: Developers building or maintaining algorithmic trading systems that require real-time forex market data.\n- **Risk Managers**: Financial professionals who monitor and manage risk based on the latest movements in the forex market.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_latest_tick_forex","x-section":"Indices & Ref. Rates","x-roles-required":["free","forex_rates_viewer"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_forex_rates","x-endpoint-group-name":"Forex Rates","parameters":[{"name":"instruments","in":"query","description":"A comma separated array of forex instruments (asset - USD) to retrieve.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["GBP-USD","MYR-USD"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/historical/days/forex":{"get":{"summary":"Forex Rates Historical OHLCV+ Day","description":"This endpoint is meticulously engineered to provide comprehensive historical candlestick data for various forex instruments, with granularity at day-by-day intervals. It is designed to deliver detailed metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and other trading-derived values, collectively referred to as OHLCV+. The data serves to offer insights into daily price movements and trading volume, allowing for a robust analysis of forex market trends over time. This endpoint is particularly valuable for users requiring a historical perspective to inform trading strategies, perform retrospective market analysis, or validate financial models.","x-extended-description-with-markdown":"This endpoint is meticulously engineered to provide comprehensive historical candlestick data for various forex instruments, with granularity at day-by-day intervals. It is designed to deliver detailed metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and other trading-derived values, collectively referred to as OHLCV+. The data serves to offer insights into daily price movements and trading volume, allowing for a robust analysis of forex market trends over time. This endpoint is particularly valuable for users requiring a historical perspective to inform trading strategies, perform retrospective market analysis, or validate financial models.\n\n### Use Cases\n- **Historical Market Analysis**: Financial analysts and market researchers can use this historical data to perform trend analysis, volatility assessment, and comparative studies of forex market behavior over different periods.\n- **Back-testing Trading Strategies**: Traders and financial modelers can utilize the detailed daily data to back-test trading strategies to ensure their effectiveness under historical market conditions.\n- **Educational Purposes**: Academics and students specializing in finance can use this data for case studies, coursework, and research projects that require understanding of forex market dynamics.\n- **Regulatory Compliance and Reporting**: Financial institutions can leverage this historical data to ensure compliance with trading regulations and for accurate reporting and documentation of market activities.\n\n### Target Audience\n- **Forex Traders**: Individuals or institutions needing historical data to refine trading strategies and understand market dynamics.\n- **Financial Analysts and Researchers**: Professionals requiring detailed day-by-day trading data to analyze market trends and forecast future movements.\n- **Academic Institutions**: Educators and students who need real-world data for finance-related studies and research projects.\n- **Compliance Officers and Financial Regulators**: Professionals who require accurate and detailed historical trading information for compliance and regulatory purposes.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_days_forex","x-section":"Indices & Ref. Rates","x-roles-required":["free","forex_rates_viewer"],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_forex_rates","x-endpoint-group-name":"Forex Rates","parameters":[{"name":"instrument","in":"query","description":"A forex instrument (asset - USD) to retrieve. For example, GBP-USD.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"GBP-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/historical/hours/forex":{"get":{"summary":"Forex Rates Historical OHLCV+ Hour","description":"This endpoint is designed to provide detailed candlestick data for various forex instruments, reported at hour-by-hour intervals. It offers a precise snapshot of forex market movements by delivering metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and other trading-derived values, collectively referred to as OHLCV+. The data captured and reported through this endpoint is crucial for users who require granular, up-to-the-hour information to monitor market dynamics closely, adjust trading strategies in real-time, or conduct detailed, short-term market analysis.","x-extended-description-with-markdown":"This endpoint is designed to provide detailed candlestick data for various forex instruments, reported at hour-by-hour intervals. It offers a precise snapshot of forex market movements by delivering metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and other trading-derived values, collectively referred to as OHLCV+. The data captured and reported through this endpoint is crucial for users who require granular, up-to-the-hour information to monitor market dynamics closely, adjust trading strategies in real-time, or conduct detailed, short-term market analysis.\n\n### Use Cases\n- **Intraday Trading: Forex traders focused on intraday strategies can utilize the hourly data to make informed trading decisions based on short-term price movements and volume changes.\n- **Real-Time Market Monitoring: Financial analysts and trading desks can monitor market behavior on an hourly basis, allowing for immediate reaction to market shifts or news events that might impact forex prices.\n- **Algorithm Testing and Development: Developers working on trading algorithms can test the effectiveness of their strategies under various market conditions using the hourly data provided by this endpoint.\n- **Risk Management: Financial institutions and individual traders can manage their exposure and risk by analyzing hourly fluctuations in the forex market, helping to optimize trading positions and hedge against potential losses.\n\n### Target Audience\n- **Forex Traders: Individuals or institutions engaging in intraday trading who need up-to-date information on forex price movements.\n- **Financial Analysts: Professionals who require hourly updates to keep a pulse on the forex market for reports, analysis, or advisory purposes.\n- **Algorithm Developers: Coders and system developers who need detailed, frequent data inputs for building or refining trading algorithms.\n- **Risk Managers: Financial professionals tasked with managing and mitigating financial risks associated with forex trading activities.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_hours_forex","x-section":"Indices & Ref. Rates","x-roles-required":["free","forex_rates_viewer"],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_forex_rates","x-endpoint-group-name":"Forex Rates","parameters":[{"name":"instrument","in":"query","description":"A forex instrument (asset - USD) to retrieve. For example, GBP-USD.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"GBP-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/historical/minutes/forex":{"get":{"summary":"Forex Rates Historical OHLCV+ Minute","description":"This endpoint is expertly designed to provide candlestick data for various forex instruments at minute-by-minute intervals, catering to users who need the most immediate and granular data available. It offers comprehensive, up-to-the-minute metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and additional trading-derived values known as OHLCV+. This high-resolution data is essential for users engaged in high-frequency trading, where every minute can influence trading decisions. It supports rapid strategy adjustments, real-time market analysis, and the execution of automated trading systems that rely on the latest market information.","x-extended-description-with-markdown":"This endpoint is expertly designed to provide candlestick data for various forex instruments at minute-by-minute intervals, catering to users who need the most immediate and granular data available. It offers comprehensive, up-to-the-minute metrics including OPEN, HIGH, LOW, CLOSE, VOLUME, and additional trading-derived values known as OHLCV+. This high-resolution data is essential for users engaged in high-frequency trading, where every minute can influence trading decisions. It supports rapid strategy adjustments, real-time market analysis, and the execution of automated trading systems that rely on the latest market information.\n\n### Use Cases\n- **High-Frequency Trading (HFT)**: Traders involved in high-frequency trading can leverage the minute-by-minute data to execute a large number of orders at very fast speeds based on very short-term market trends.\n- **Algorithmic Trading Systems**: Developers and engineers can use this detailed minute-level data to program and refine complex trading algorithms that need to respond instantly to market changes.\n- **Real-Time Risk Management**: Financial institutions and traders can manage risk more effectively by analyzing real-time data to quickly adapt to price volatility and market dynamics.\n- **Detailed Market Analysis**: Market analysts require high-resolution data to dissect intra-hour price movements and volatility, helping to enhance market predictions and strategies.\n\n### Target Audience\n- **Forex Traders**: Particularly those who engage in high-frequency and algorithmic trading, requiring minute-level updates to inform their trading decisions.\n- **Algorithm Developers**: Technologists and developers who create and maintain advanced trading algorithms that operate on very short time frames.\n- **Financial Analysts**: Analysts who perform in-depth, granular market analyses to understand immediate market trends and factors influencing forex prices.\n- **Risk Managers**: Financial professionals who monitor and adjust strategies based on real-time data to mitigate risks associated with high-frequency trading.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_minutes_forex","x-section":"Indices & Ref. Rates","x-roles-required":["free","forex_rates_viewer"],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_forex_rates","x-endpoint-group-name":"Forex Rates","parameters":[{"name":"instrument","in":"query","description":"A forex instrument (asset - USD) to retrieve. For example, GBP-USD.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"GBP-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","OHLC_MESSAGE","MESSAGE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FOREX_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/markets/instruments/unmapped/forex":{"get":{"summary":"Forex Rates Instruments","description":"This endpoint is designed to retrieve a list of forex instruments, specifically formatted as Forex Symbol-USD, to identify the available forex pairs in various states or statuses. It primarily serves as a discovery tool for users to explore and identify the available forex pairs on the platform. By providing insights into the current status of each forex instrument, such as whether they are active, inactive, or in any other specified state, this endpoint aids in comprehensive market exploration and strategic planning. This capability is crucial for users looking to expand their trading portfolios, conduct market analysis, or integrate forex data into financial applications.","x-extended-description-with-markdown":"This endpoint is designed to retrieve a list of forex instruments, specifically formatted as Forex Symbol-USD, to identify the available forex pairs in various states or statuses. It primarily serves as a discovery tool for users to explore and identify the available forex pairs on the platform. By providing insights into the current status of each forex instrument, such as whether they are active, inactive, or in any other specified state, this endpoint aids in comprehensive market exploration and strategic planning. This capability is crucial for users looking to expand their trading portfolios, conduct market analysis, or integrate forex data into financial applications.\n\n### Use Cases\n- **Market Exploration**: Traders and investors use this endpoint to discover new forex pairs and assess their availability and status, which is essential for diversifying trading strategies and exploring new trading opportunities.\n- **Data Integration**: Fintech developers can integrate this list into financial applications or trading platforms, allowing users to easily access and trade a variety of forex pairs.\n- **Strategic Planning**: Financial analysts and institutional traders can analyze the status and availability of different forex pairs to adjust their market positions and enhance their trading decisions based on the most current market offerings.\n- **Compliance and Reporting**: Compliance officers use this data to ensure that only active and approved forex pairs are being traded on platforms, helping to maintain regulatory compliance.\n\n### Target Audience\n- **Forex Traders**: Both individual and institutional traders looking to explore and trade a variety of forex pairs.\n- **Fintech Developers**: Professionals developing or maintaining financial trading platforms that require a comprehensive list of forex instruments.\n- **Market Analysts**: Analysts needing detailed information on the status and availability of forex pairs for market analysis purposes.\n- **Regulatory Compliance Officers**: Individuals responsible for ensuring that trading activities align with legal and regulatory standards.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_markets_instruments_unmapped_forex","x-section":"Indices & Ref. Rates","x-roles-required":["free","forex_rates_viewer"],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_forex_rates","x-endpoint-group-name":"Forex Rates","parameters":[{"name":"instruments","in":"query","description":"A forex instrument (asset - USD) to retrieve. For example, GBP-USD.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["GBP-USD","MYR-USD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/markets/instruments/unmapped/eod":{"get":{"summary":"EOD Markets + Instruments","description":"This endpoint provides detailed information on EOD index markets and their instruments. It allows users to retrieve data for all instruments within a market, specific market-instrument combinations, or multiple markets. This endpoint is crucial for gaining insights into EOD index instruments, aiding in market analysis, strategic planning, and financial application integration.","x-extended-description-with-markdown":"The End of Day (EOD) Markets and Instruments endpoint is designed to provide comprehensive information on all integrated End of Day (EOD) index markets and their respective instruments. Users can retrieve data on all instruments within a requested market, a specific market and instrument combination, or across multiple markets. This endpoint is essential for users seeking detailed insights into the availability and status of EOD index instruments, facilitating effective market exploration, strategic planning, and data integration into financial applications.\n\n### Use Cases\n- **Market Exploration**: Users can discover and assess EOD index instruments across various markets, aiding in diversification and new trading opportunities..\n- **Data Integration**: Fintech developers can incorporate EOD index data into financial applications, enhancing platform functionality with comprehensive market information.\n- **Strategic Planning**: Financial analysts and institutional traders can use the endpoint to analyse EOD index instruments, adjusting market positions and strategies based on current market data.\n- **Portfolio Management**: Investors can utilise this data to expand and manage their investment portfolios by exploring various EOD index instruments.\n- **Compliance and Reporting**: Regulatory officers can ensure that trading activities comply with legal standards by accessing up-to-date information on available EOD index instruments.\n\n\n### Target Audience\n- **Index Traders**: Individuals and institutions trading index instruments who need detailed market information..\n- **Fintech Developers**: Professionals building or maintaining financial applications that require access to EOD index market data.\n- **Market Analysts**: Analysts seeking comprehensive data on EOD index instruments for thorough market analysis.\n- **Portfolio Managers**: Investment managers looking to diversify and optimise portfolios with various index instruments.\n- **Regulatory Compliance Officers**:  Those responsible for ensuring that trading activities are in accordance with regulatory standards.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_markets_instruments_unmapped_eod","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_markets_instruments_unmapped_eod","x-endpoint-group-name":"EOD Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The eod market to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["cchkex_eod","cdi_ti","cdiamina","cdidx","cdifr","cdifti","cdisett","cdisr","cditis","cditr","cdor","sgx_rr",""],"x-enum-properties-info":{"cchkex_eod":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cdidx":{"visibilityRolesRequired":["customer_support","ifam_cdidx_r"]},"cdisett":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_cdisett_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex_eod":["ifam_hkex_r","customer_support"],"cdidx":["customer_support","ifam_cdidx_r"],"cdisett":["ifam_coindesk_r","ifam_cdisett_r","customer_support"],"sgx_rr":["customer_support"]},"minLength":0,"maxLength":30},"example":"cdifti"},{"name":"instruments","in":"query","description":"A comma separated array of instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["BTIUSF-USD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INTERNAL","INSTRUMENT_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EOD_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/cc/v1/historical/days/eod":{"get":{"summary":"EOD Historical OHLCV+ Day","description":"This endpoint retrieves the End Of Day (EOD) close value for a specified crypto market index and instrument. The close value is the price at which the instrument was last calculated at the end of specified hour, adjusted for the specified timezone.","x-extended-description-with-markdown":"The End of Day (EOD) endpoint is designed to provide end-of-day values for specific market and instrument combinations. By delivering comprehensive EOD data, this endpoint helps users monitor the closing values of various instruments, facilitating informed decision-making and strategic planning. This endpoint is essential for traders, analysts, and developers looking to integrate accurate and up-to-date EOD crypto index data into their financial applications and trading platforms.\n\n### Use Cases\n- **Market Analysis**: Analysts use this endpoint to access EOD values for various crypto indices, enabling thorough market performance analysis and trend identification.\n- **Trading Strategies**: Traders can leverage EOD data to refine trading strategies, ensuring decisions are based on the latest closing values.\n- **Data Integration**: Fintech developers can integrate EOD crypto index data into financial applications, providing users with critical information for trading and analysis.\n- **Performance Tracking**: Investors can track the performance of specific crypto indices, aiding in portfolio management and performance evaluation.\n- **Historical Data Review**: Users can review historical EOD values for specific crypto indices to understand market movements over time.\n\n\n### Target Audience\n- **Cryptocurrency Traders**: Individuals and institutions trading cryptocurrencies who need precise EOD data for strategic planning.\n- **Market Analysts**: Professionals analysing market trends and performance using accurate EOD index data.\n- **Fintech Developers**: Developers integrating crypto index data into financial applications to enhance functionality and user experience.\n- **Investors**: Individuals managing crypto portfolios who require detailed EOD data for performance tracking and decision-making.\n- **Financial Advisors**: Advisors providing clients with data-driven insights into crypto index performance.\n\nThe End Of Day (EOD) histo endpoint is a crucial resource for accessing end-of-day values for specific cryptocurrency market and instrument combinations. It empowers traders, analysts, and developers with reliable EOD data, supporting informed decision-making and strategic planning. By integrating this endpoint into financial applications, developers can enhance their platforms with essential market data, enabling users to track performance, refine strategies, and conduct comprehensive market analysis. Start utilising this endpoint today to build advanced financial solutions, optimise trading decisions, and gain deeper insights into the cryptocurrency market.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_days_eod","x-section":"Indices & Ref. Rates","x-roles-required":[],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_historical_days_eod","x-endpoint-group-name":"EOD Historical OHLCV+ Day","parameters":[{"name":"market","in":"query","description":"The eod market to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cchkex_eod","cdi_ti","cdiamina","cdidx","cdifr","cdifti","cdisett","cdisr","cditis","cditr","cdor","sgx_rr"],"x-enum-properties-info":{"cchkex_eod":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cdidx":{"visibilityRolesRequired":["customer_support","ifam_cdidx_r"]},"cdisett":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_cdisett_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex_eod":["ifam_hkex_r","customer_support"],"cdidx":["customer_support","ifam_cdidx_r"],"cdisett":["ifam_coindesk_r","ifam_cdisett_r","customer_support"],"sgx_rr":["customer_support"]},"minLength":2,"maxLength":30},"example":"cdifti"},{"name":"instrument","in":"query","description":"A comma separated array of instruments to retrieve on a specific market or all available markets.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":30},"example":"BTIUSF-USD"},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"limit","in":"query","description":"The number of days to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":50},"example":5},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EOD_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/cc/v1/historical/days/composition":{"get":{"summary":"Index Utilities Composition","description":"The index composition endpoint returns the index value and divisor for a multi digital asset index along with its underlying constituent prices, supplies, adjustment factors, volumes, and weights. The endpoint returns these values each day for the close of the specified hour and timezone.","x-extended-description-with-markdown":"The Index Composition endpoint delivers a daily update of market data for a specified instrument, offering a comprehensive view of its composition and valuation. This endpoint is designed to assist traders, investors, and asset managers in understanding the underlying components and market dynamics of a given instrument. By delivering detailed information on each component, including market value, conversion rates, and weight, the endpoint ensures a transparent and accurate representation of the instrument’s market position.\n\nThe composition endpoint provides a detailed breakdown of an instrument’s market data, offering insights into its components and their respective contributions to the overall value. This information is crucial for portfolio valuation, risk assessment, and strategic decision-making. By understanding the composition of an instrument, market participants can make informed decisions based on accurate and reliable data.\n\n### Key Features\n- **Comprehensive Data**: The endpoint provides detailed information on each component of the instrument, including market, conversion rates, and calculated volumes, ensuring a thorough understanding of the instrument’s composition.\n- **Daily Updates**: The endpoint delivers one update per day based on the specified close time, date, and timezone, ensuring that users have access to the most current data.\n- **Market Transparency**: By offering a transparent view of the instrument’s components, the endpoint enhances market transparency and aids in accurate valuation.\n\n### Target Audience\n- **Traders**: The endpoint offers traders a detailed breakdown of instrument components, aiding in strategic trading decisions and risk management.\n- **Investors**: Investors benefit from a comprehensive view of an instrument’s composition, enhancing their ability to assess the value and risk of their investments.\n- **Asset Managers**: Asset managers can rely on the endpoint for precise data on instrument composition, crucial for portfolio management and reporting.\n- **Market Analysts**: Market analysts can utilize the endpoint to gain insights into market dynamics and instrument performance, supporting in-depth market analysis and forecasting.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_historical_days_composition","x-section":"Indices & Ref. Rates","x-roles-required":["free","customer_support","index_composition_endpoint_full_viewer"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_utilities","x-endpoint-group-name":"Index Utilities","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cdmcdev","cd_mc"],"x-enum-properties-info":{"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]}},"x-visibility-roles-required-enum":{"cdmcdev":["i_cd20_r","customer_support"]},"minLength":2,"maxLength":30},"example":"cd_mc"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CD20-USD","minLength":0,"maxLength":30},"example":"CD20-USD"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MESSAGE","COMPONENTS","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"timezone","in":"query","description":"The timezone of the close_time you are interested in.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"UTC","enum":["America/Los_Angeles","America/Mexico_City","America/New_York","America/Toronto","America/Buenos_Aires","America/Sao_Paulo","Europe/London","Europe/Zurich","Europe/Bucharest","Europe/Istanbul","Europe/Moscow","Africa/Casablanca","Africa/Lagos","Africa/Johannesburg","Africa/Cairo","Asia/Kolkata","Asia/Shanghai","Asia/Hong_Kong","Asia/Singapore","Asia/Tokyo","Australia/Sydney","UTC"],"x-enum-properties-info":{}},"example":"Europe/London"},{"name":"date","in":"query","description":"The date you are interested in. If not passed in, it would default to the current day.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string"},"example":"2025-05-09"},{"name":"close_time","in":"query","description":"The time you are interested in. It will be rounded down to the hour. If not passed in, it would default to the current hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string"},"example":"16:00"},{"name":"limit","in":"query","description":"The number of days to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":365},"example":5},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_COMPOSITIION_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/cc/v1/reconstitution":{"get":{"summary":"Index Utilities Reconstitution","description":"The Index Reconstitution provides a forward-looking view of index composition changes, delivering the new component prices and weights for multi-asset indices at any point between the announcement and rebalance dates. This allows you to anticipate and analyze the upcoming portfolio adjustments before they are officially implemented. By offering on-demand access to this pre-rebalance data, the endpoint empowers users to make proactive and informed decisions regarding their cryptocurrency investments.","x-extended-description-with-markdown":"\n        The Index Reconstitution provides a forward-looking view of index composition changes, delivering the new component prices and weights for multi-asset indices at any point between the announcement and rebalance dates. This allows you to anticipate and analyze the upcoming portfolio adjustments before they are officially implemented. By offering on-demand access to this pre-rebalance data, the endpoint empowers users to make proactive and informed decisions regarding their cryptocurrency investments.\n\n### Key Features\n- **On-Demand Data Retrieval**: Clients can input any timestamp between the announcement and rebalance dates to receive the corresponding index components, prices, and weights, offering flexibility and precise analysis.\n- **Pre-Rebalance Insights**: The endpoint delivers a clear picture of the new portfolio composition before the rebalance occurs, providing a crucial informational advantage.\n- **Future-Oriented Analysis**: Access to upcoming index changes allows for scenario analysis and strategic planning based on the new weights and components.\n\n### Target Audience\n- **Traders**: Traders can use the endpoint to anticipate market movements and adjust their strategies in advance of the index rebalance.\n- **Investors**: The endpoint enables investors to understand how the risk and return characteristics of their indexed investments will change.\n- **Asset Managers**: Asset managers can utilize this data to seamlessly align their portfolios with the upcoming index changes and manage tracking error effectively.\n- **Market Analysts**: The endpoint provides market analysts with the data needed to assess the impact of reconstitution events on the broader cryptocurrency market.","tags":["Indices & Ref. Rates"],"operationId":"index_cc_v1_reconstitution","x-section":"Indices & Ref. Rates","x-roles-required":["free","customer_support","index_composition_endpoint_full_viewer"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"index_cc_v1_utilities","x-endpoint-group-name":"Index Utilities","parameters":[{"name":"market","in":"query","description":"The index family to obtain data from. The default value is cadli, our 24-hour volume-weighted average with time penalty and outlier adjustment index.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["cadli","cchkex","cchkex_eod","ccix","cber","cbr","cbrsett","cbersett","ccixdev","ccmvda_coint","ccmvda_virt","ccxrp","cd_mc","cdi_b","cdi_mda","cdi_ti","cdisett","cdmcdev","cdor","nasdaq_single","rr_spot","rr_vwap","sda","sgx_rr","sgxrt","sgxtwap"],"x-enum-properties-info":{"cchkex":{"visibilityRolesRequired":["ifam_hkex_r","customer_support"]},"cchkex_eod":{"visibilityRolesRequired":["customer_support"]},"ccixbe":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cber":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixber":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbr":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbervwap":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"cbrsett":{"visibilityRolesRequired":["ifam_ccixber_r","ifam_coindesk_r","customer_support"]},"ccixbevwap":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"cbersett":{"visibilityRolesRequired":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"]},"ccixdev":{"visibilityRolesRequired":["customer_support"]},"ccmvda_coint":{"visibilityRolesRequired":["ifam_coinbase_int_r","customer_support"]},"ccmvda_virt":{"visibilityRolesRequired":["ifam_mvis_r","customer_support"]},"cdi_ti":{"visibilityRolesRequired":["ifam_coindesk_r","customer_support"]},"cdisett":{"visibilityRolesRequired":["ifam_cdisett_r","customer_support","ifam_coindesk_r"]},"cdmcdev":{"visibilityRolesRequired":["i_cd20_r","customer_support"]},"nasdaq_single":{"visibilityRolesRequired":["customer_support"]},"rr_spot":{"visibilityRolesRequired":["customer_support"]},"rr_vwap":{"visibilityRolesRequired":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"]},"sgx_rr":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxrt":{"visibilityRolesRequired":["ifam_sgxrr_r","customer_support"]},"sgxtwap":{"visibilityRolesRequired":["customer_support"]}},"x-visibility-roles-required-enum":{"cchkex":["ifam_hkex_r","customer_support"],"cchkex_eod":["customer_support"],"ccixbe":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cber":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixber":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbr":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbervwap":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"cbrsett":["ifam_ccixber_r","ifam_coindesk_r","customer_support"],"ccixbevwap":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"cbersett":["ifam_ccixbe_r","ifam_coindesk_r","customer_support"],"ccixdev":["customer_support"],"ccmvda_coint":["ifam_coinbase_int_r","customer_support"],"ccmvda_virt":["ifam_mvis_r","customer_support"],"cdi_ti":["ifam_coindesk_r","customer_support"],"cdisett":["ifam_cdisett_r","customer_support","ifam_coindesk_r"],"cdmcdev":["i_cd20_r","customer_support"],"nasdaq_single":["customer_support"],"rr_spot":["customer_support"],"rr_vwap":["ifam_coindesk_r","ifam_rr_vwap_r","customer_support"],"sgx_rr":["ifam_sgxrr_r","customer_support"],"sgxrt":["ifam_sgxrr_r","customer_support"],"sgxtwap":["customer_support"]},"minLength":2,"maxLength":30},"example":"cd_mc"},{"name":"instrument","in":"query","description":"An instrument to retrieve from a specific market. For example, BTC-USD on cadli.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CD20-USD","minLength":0,"maxLength":30},"example":"CD20-USD"},{"name":"price_timestamp","in":"query","description":"The timestamp specifying when to source prices for the instrument's underlying assets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"reconstitution_timestamp","in":"query","description":"The timestamp specifying which version of the instrument's reconstitution configuration to use.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MESSAGE","COMPONENTS"],"x-enum-properties-info":{}}},"example":[]},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_RECONSTITUTION_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v1/latest/tick":{"get":{"summary":"Latest Tick by Market","description":"This endpoint provides real-time trade and market data for selected instruments on a specified exchange. It delivers the most current price details alongside aggregated data over various time periods including hourly, daily, weekly, monthly, and annually. This comprehensive dataset not only includes the latest price but also offers detailed metrics on volume, open-high-low-close (OHLC) values, and changes over specified periods, making it a valuable resource for tracking market trends and making informed trading decisions.","x-extended-description-with-markdown":"This endpoint provides real-time trade and market data for selected instruments on a specified exchange. It delivers the most current price details alongside aggregated data over various time periods including hourly, daily, weekly, monthly, and annually. This comprehensive dataset not only includes the latest price but also offers detailed metrics on volume, open-high-low-close (OHLC) values, and changes over specified periods, making it a valuable resource for tracking market trends and making informed trading decisions.\n\n### Use Cases\n- **Real-time Market Monitoring**: Traders and analysts can monitor real-time price movements and volume changes of selected instruments to make timely trading decisions.\n- **Historical Data Analysis**: Financial analysts can access historical aggregated data to analyze market trends, perform back-testing of trading strategies, or conduct technical analysis.\n- **Reporting and Visualization**: Data journalists and researchers can use the detailed data provided for creating reports or visual representations of market behaviors over various periods.\n- **Algorithmic Trading**: Developers and firms can integrate this endpoint into algorithmic trading systems to feed real-time and historical data for automated trading decisions.\n\n### Target Audience\n- **Financial Analysts and Market Researchers** who require detailed and up-to-date market data to analyze trends and prepare market forecasts.\n- **Trading Firms and Individual Traders** who need real-time price information and historical data aggregates for effective trading strategy formulation and execution.\n- **Fintech Developers** looking to integrate cryptocurrency market data into applications or trading platforms for enhanced functionality.\n- **Academic Researchers and Data Scientists** interested in cryptocurrency market dynamics for academic and experimental purposes.","tags":["Spot"],"operationId":"spot_v1_latest_tick","x-section":"Spot","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","LAST_PROCESSED","TOP_OF_BOOK","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v1/latest/tick/asset":{"get":{"summary":"Latest Tick by Asset (Spot)","description":"This endpoint provides comprehensive market data snapshots for a wide array of instruments across multiple exchanges. You can dynamically rank the entire list of instruments by key performance metrics such as MOVING_24_HOUR_VOLUME or our proprietary MARKET_BENCHMARK_SCORE. Each object in the response contains full tick data, making it a powerful tool for market-wide analysis.","x-extended-description-with-markdown":"This endpoint provides comprehensive market data snapshots for a wide array of instruments across multiple exchanges. You can dynamically rank the entire list of instruments by key performance metrics such as MOVING_24_HOUR_VOLUME or our proprietary MARKET_BENCHMARK_SCORE. Each object in the response contains full tick data, making it a powerful tool for market-wide analysis.\n\n### Use Cases\n- **Market Scanning and Liquidity Discovery**: By sorting by MOVING_24_HOUR_VOLUME, traders can instantly identify the most active and liquid trading pairs across the entire crypto landscape. This is essential for finding the best markets to trade in, ensuring minimal slippage for large orders.\n- **Exchange and Instrument Vetting**: Use the MARKET_BENCHMARK_SCORE to filter for high-quality, reliable markets. This helps traders and investors avoid pairs with low liquidity, questionable data integrity, or characteristics of wash trading.\n- **Dashboard and Application Development**: The endpoint's structure is ideal for developers building market overview dashboards, portfolio trackers, or research tools that require a comprehensive, multi-market data snapshot in a single API call.\n\n### Target Audience\n- **Market Analysts and Researchers**  who need to compare trading activity and market quality across a wide range of instruments to identify macro trends and produce insightful reports.\n- **Retail and Professional Traders** seeking to find the most liquid and reputable markets to execute their trading strategies effectively and safely.\n- **Portfolio Managers and Crypto Funds** that require a high-level overview of market activity to inform asset allocation, diversification, and risk management decisions.\n- **Fintech Developers and Data Providers** building applications like market scanners, \"top movers\" lists, portfolio dashboards, or charting tools that rely on aggregated, cross-market data.","tags":["Deprecated"],"operationId":"spot_v1_latest_tick_asset","x-section":"Deprecated","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_latest","x-endpoint-group-name":"Latest Tick by Asset (Spot)","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME","enum":["MOVING_24_HOUR_VOLUME","MOVING_24_HOUR_VOLUME_USD","MOVING_24_HOUR_TOTAL_TRADES","MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME","MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME_USD","MARKET_BENCHMARK_SCORE"],"x-enum-properties-info":{"MOVING_24_HOUR_VOLUME":{"name":"","description":""},"MOVING_24_HOUR_VOLUME_USD":{"name":"","description":""},"MOVING_24_HOUR_TOTAL_TRADES":{"name":"","description":""},"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME":{"name":"","description":""},"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME_USD":{"name":"","description":""},"MARKET_BENCHMARK_SCORE":{"name":"","description":""}}},"example":"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","LAST_PROCESSED","TOP_OF_BOOK","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"base_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"}],"deprecated":true,"x-superseded-by-operation-id":"spot_v2_latest_tick_asset","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_MARKET_DATA_BY_ASSET_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v2/latest/tick/asset":{"get":{"summary":"Latest Tick by Asset","description":"This endpoint provides comprehensive market data snapshots for a wide array of instruments across multiple exchanges. You can dynamically rank the entire list of instruments by key performance metrics such as MOVING_24_HOUR_VOLUME or our proprietary MARKET_BENCHMARK_SCORE. Each object in the response contains full tick data, making it a powerful tool for market-wide analysis. Use the asset_role parameter to filter instruments by whether the queried asset is the base currency, quote currency, or both.","x-extended-description-with-markdown":"This endpoint provides comprehensive market data snapshots for a wide array of instruments across multiple exchanges. You can dynamically rank the entire list of instruments by key performance metrics such as MOVING_24_HOUR_VOLUME or our proprietary MARKET_BENCHMARK_SCORE. Each object in the response contains full tick data, making it a powerful tool for market-wide analysis.\n\n### Use Cases\n- **Market Scanning and Liquidity Discovery**: By sorting by MOVING_24_HOUR_VOLUME, traders can instantly identify the most active and liquid trading pairs across the entire crypto landscape. This is essential for finding the best markets to trade in, ensuring minimal slippage for large orders.\n- **Exchange and Instrument Vetting**: Use the MARKET_BENCHMARK_SCORE to filter for high-quality, reliable markets. This helps traders and investors avoid pairs with low liquidity, questionable data integrity, or characteristics of wash trading.\n- **Dashboard and Application Development**: The endpoint's structure is ideal for developers building market overview dashboards, portfolio trackers, or research tools that require a comprehensive, multi-market data snapshot in a single API call.\n\n### Target Audience\n- **Market Analysts and Researchers**  who need to compare trading activity and market quality across a wide range of instruments to identify macro trends and produce insightful reports.\n- **Retail and Professional Traders** seeking to find the most liquid and reputable markets to execute their trading strategies effectively and safely.\n- **Portfolio Managers and Crypto Funds** that require a high-level overview of market activity to inform asset allocation, diversification, and risk management decisions.\n- **Fintech Developers and Data Providers** building applications like market scanners, \"top movers\" lists, portfolio dashboards, or charting tools that rely on aggregated, cross-market data.","tags":["Spot"],"operationId":"spot_v2_latest_tick_asset","x-section":"Spot","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME","enum":["MOVING_24_HOUR_VOLUME","MOVING_24_HOUR_VOLUME_USD","MOVING_24_HOUR_TOTAL_TRADES","MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME","MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME_USD","MARKET_BENCHMARK_SCORE"],"x-enum-properties-info":{"MOVING_24_HOUR_VOLUME":{"name":"","description":""},"MOVING_24_HOUR_VOLUME_USD":{"name":"","description":""},"MOVING_24_HOUR_TOTAL_TRADES":{"name":"","description":""},"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME":{"name":"","description":""},"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME_USD":{"name":"","description":""},"MARKET_BENCHMARK_SCORE":{"name":"","description":""}}},"example":"MARKET_BENCHMARK_TIER_AND_MOVING_24_HOUR_VOLUME"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","LAST_PROCESSED","TOP_OF_BOOK","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"asset_role","in":"query","description":"Filter instruments by the role of the queried asset. BASE returns instruments where the asset is the base currency, QUOTE where it is the quote currency, ALL returns both.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL","enum":["BASE","QUOTE","ALL"],"x-enum-properties-info":{}},"example":"ALL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_MARKET_DATA_BY_ASSET_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v1/historical/days":{"get":{"summary":"Historical OHLCV+ Day","description":"This endpoint delivers daily aggregated candlestick data for specific cryptocurrency instruments across selected exchanges. It offers vital trading metrics, including open, high, low, close (OHLC) prices, and trading volumes, both in base and quote currencies. This data is key for understanding historical price movements and market behavior, allowing for detailed analysis of trading patterns and trends over time.","x-extended-description-with-markdown":"This endpoint delivers daily aggregated candlestick data for specific cryptocurrency instruments across selected exchanges. It offers vital trading metrics, including open, high, low, close (OHLC) prices, and trading volumes, both in base and quote currencies. This data is key for understanding historical price movements and market behavior, allowing for detailed analysis of trading patterns and trends over time.The endpoint is flexible, providing customization options for market and instrument selection, as well as aggregation preferences, making it an essential tool for traders, analysts, and researchers.\n\n### Key Features\n- **OHLC Data**: Access daily open, high, low, and close price data, providing clear snapshots of market behavior at a granular level.\n- **Volume Metrics**: Retrieve trading volumes for both base and quote currencies, allowing for a deeper understanding of liquidity and market depth.\n- **Customizable Data Aggregation**: Tailor data retrieval through flexible parameters, such as market selection and instrument specifics, to suit various analysis needs.\n- **Historical Data Availability**: Access long-term historical data for comprehensive backtesting and market trend analysis.\n- **Exchange-Specific Data**: Filter by specific exchanges to analyze data from preferred trading venues or focus on a particular market segment.\n\n### Use Cases\n- **Market Trend Analysis**: Study historical price movements and volumes to identify potential trends, price patterns, and shifts in market sentiment.\n- **Strategy Backtesting**: Use historical OHLC and volume data to backtest and refine trading strategies, ensuring they are effective in various market conditions before live trading.\n- **Risk Management and Forecasting**: Analysts can use historical data to model risk scenarios and forecast future price movements, supporting more informed trading and investment decisions.\n- **Financial Reporting**: Leverage detailed historical candlestick data to provide insights in financial reports, market analyses, or news stories on market conditions.\n- **Academic Research**: Universities and research institutions can analyze the historical market behavior of cryptocurrencies for academic papers or coursework focused on financial analysis.\n\n### Target Audiences\n- **Traders and Investors**: Access comprehensive historical market data to enhance decision-making and strategy formulation.\n- **Data Analysts and Financial Researchers**: Utilize detailed candlestick and volume data for building predictive models and analyzing market behavior.\n- **Educational Institutions**: Offer students real-world cryptocurrency data for use in financial market research, class projects, or academic papers.\n- **Financial Institutions and Hedge Funds**: Use historical price and volume data to assess market behavior, supporting risk management, and strategic investment decisions.\n- **Media and Financial Reporters**: Provide readers with accurate historical data points to support financial reporting on market trends and price changes.\n\n### Data Handling Notes\n- **High-Volume Data**: To retrieve extensive historical data, paginate efficiently by handling up to 2,000 data points per request. Ensure that your application can manage this volume and process it accordingly.\n- **Efficient Data Retrieval**: Use filtering options for exchanges and instruments, and customize aggregation periods to focus on relevant data.\n- **Historical Data Updates**: Although rare, in extreme circumstances, we may update historical entries if trades were originally missed. These backfilled entries ensure the most accurate historical data available, but such occurrences are uncommon and not part of the standard process.\n\nBy utilizing this endpoint, users can access crucial historical candlestick data, enabling robust market analysis, strategy development, and comprehensive reporting in the fast-paced cryptocurrency space.","tags":["Spot"],"operationId":"spot_v1_historical_days","x-section":"Spot","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"kraken"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":10},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/spot/v1/historical/hours":{"get":{"summary":"Historical OHLCV+ Hour","description":"This endpoint provides hourly candlestick data for various cryptocurrency instruments across selected exchanges. This endpoint is designed to furnish users with detailed trading data points including open, high, low, close prices (OHLC), and volume metrics in both base and quote currencies on an hourly basis. It is a critical tool for anyone needing to dissect the market's behavior in finer increments than daily data allows. The flexibility of this endpoint is enhanced by parameters that allow users to specify the market, instrument, time range, and data aggregation granularity.","x-extended-description-with-markdown":"This endpoint provides hourly candlestick data for various cryptocurrency instruments across selected exchanges. This endpoint is designed to furnish users with detailed trading data points including open, high, low, close prices (OHLC), and volume metrics in both base and quote currencies on an hourly basis. It is a critical tool for anyone needing to dissect the market's behavior in finer increments than daily data allows. The flexibility of this endpoint is enhanced by parameters that allow users to specify the market, instrument, time range, and data aggregation granularity.\n\n### Use Cases\n- **Intraday Trading Analysis**: Traders can leverage hourly data to make informed decisions about entry and exit points, thus optimizing their trading strategies for intraday volatility.\n- **Risk Management**: Risk managers can better understand hourly market movements to adjust their portfolios quickly in response to short-term market shifts.\n- **Algorithmic Trading**: Developers and quants can integrate hourly data into algorithmic trading models to simulate or execute strategies that are sensitive to short-term market dynamics.\n- **Market Reporting**: Financial journalists can utilize the granular data provided to create timely and detailed reports on market conditions, offering insights within the trading day.\n\n### Target Audience\n- **Day Traders and Short-term Speculators** who operate on an intra-day basis and need timely and accurate market data.\n- **Financial Analysts** in institutions requiring high-frequency data to assess market conditions or verify market hypotheses.\n- **Algorithm Developers** looking for precise and structured historical data to test and refine trading algorithms.\n- **Market Researchers and Academics** interested in studying market behaviors at a granular hourly level to understand liquidity, volatility, and price dynamics.","tags":["Spot"],"operationId":"spot_v1_historical_hours","x-section":"Spot","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":10},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/spot/v1/historical/minutes":{"get":{"summary":"Historical OHLCV+ Minute","description":"This endpoint delivers minute-by-minute candlestick data for selected cryptocurrency instruments on specified exchanges. It offers granular trading data including open, high, low, and close prices (OHLC), alongside volume information in both the base and quote currencies for each minute. This endpoint is essential for users requiring up-to-the-minute data to closely monitor rapid market movements, enabling precise and immediate trading decisions. It supports a variety of parameters, allowing users to tailor the data fetch to specific requirements, such as choosing the market, instrument, and exact minute intervals.","x-extended-description-with-markdown":"This endpoint delivers minute-by-minute candlestick data for selected cryptocurrency instruments on specified exchanges. It offers granular trading data including open, high, low, and close prices (OHLC), alongside volume information in both the base and quote currencies for each minute. This endpoint is essential for users requiring up-to-the-minute data to closely monitor rapid market movements, enabling precise and immediate trading decisions. It supports a variety of parameters, allowing users to tailor the data fetch to specific requirements, such as choosing the market, instrument, and exact minute intervals.\n\n### Use Cases\n- **High-Frequency Trading (HFT)**: Enables high-frequency traders to execute strategies that capitalize on very short-term market inefficiencies.\n- **Real-Time Market Monitoring**: Traders and analysts can monitor market trends and price swings with minute-level precision, essential for day trading scenarios.\n- **Event-Driven Trading Analysis**: Useful for traders who analyze impacts of scheduled economic announcements or unexpected news on cryptocurrency prices within minutes of the event.\n- **Technical Analysis and Charting**: Provides traders with the necessary data granularity for detailed technical analysis, including minute-level chart plotting to discern micro-trends and price patterns.\n\n### Target Audience\n- **High-Frequency Traders** who require extremely granular data to automate trading decisions based on minute-level market changes.\n- **Day Traders** focusing on short-term price movements who need real-time data to make quick trades throughout the trading day.\n- **Financial Data Providers** and platforms that require a steady stream of minute-level data to serve their users' needs for timely and detailed market information.\n- **Market Analysts** and **Researchers** looking into the impact of news or events on market prices at a minute-level granularity.","tags":["Spot"],"operationId":"spot_v1_historical_minutes","x-section":"Spot","x-subsection":"Trade","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/spot/v2/historical/trades/hour":{"get":{"summary":"Trades Full Hour","description":"This endpoint provides detailed, standardized, and deduplicated tick-level trade data for a specified instrument on a chosen exchange, covering a specific hour. This endpoint captures every transaction executed, offering deep insights into trading activity, including price, quantity, and timestamp details. Each trade also includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring trade volumes, and understanding price fluctuations within the hour. This endpoint is also ideal for backfilling all trades on an instrument from the instrument listing time to the present.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated tick-level trade data for a specified instrument on a chosen exchange, covering a specific hour. This endpoint captures every transaction executed, offering deep insights into trading activity, including price, quantity, and timestamp details. Each trade also includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring trade volumes, and understanding price fluctuations within the hour. This endpoint is also ideal for backfilling all trades on an instrument from the instrument listing time to the present.\n\n### Key Features\n- **Comprehensive Tick-Level Data**: Access every transaction executed within a specific hour, including price, quantity, and precise timestamp details.\n- **Standardized and Deduplicated Information**: Receive clean, consistent data free from duplicates for accurate market analysis.\n- **Unique CCSEQ Numbers**: Each trade includes an individual CryptoCompare Sequence (CCSEQ) number for precise tracking and sequencing.\n- **Trade Side Identification**: Determine the buy or sell side of each trade to enhance market sentiment analysis.\n- **Received and Reported Timestamps**: Compare exchange-reported timestamps with data receipt times for comprehensive temporal analysis.\n- **Ideal for Backfilling Data**: Efficiently backfill all trades from an instrument's listing time to the present.\n\n### Use Cases\n- **Market Behavior Analysis**: Examine tick-by-tick data to understand market behavior and trader reactions within a specific hour, crucial for developing short-term trading strategies.\n- **Event Impact Assessment**: Evaluate the impact of financial news or market events on trading activity and price movements within a narrow time frame.\n- **Compliance and Monitoring**: Use detailed trade data for compliance reviews, market surveillance, and monitoring trading activities to detect anomalies or manipulative practices.\n- **Quantitative Research**: Leverage granular trade data for research on market microstructures, including price discovery and transaction costs.\n- **Algorithmic Trading Models**: Develop and refine trading algorithms based on precise market data points.\n\n### Target Audiences\n- **Financial Analysts and Traders**: Professionals requiring granular data to analyze short-term market trends or backtest trading strategies.\n- **Regulatory Bodies and Compliance Officers**: Individuals needing detailed transaction records for thorough market audits or investigations.\n- **Academic Researchers**: Researchers focusing on finance who require high-resolution data for empirical studies on market behaviors.\n- **Quantitative Analysts and Algorithmic Traders**: Developers of models dependent on precise tick-level trade data.\n- **Data Scientists**: Professionals working on machine learning models and predictive analytics in financial markets.\n- **Index Calculators and Administrators**: Professionals responsible for maintaining and calculating cryptocurrency indices, who require granular and accurate tick-level data to ensure the indices reflect true market conditions. They can use this detailed trade data to adjust for corporate actions, monitor liquidity, and ensure accurate index tracking.\n- **Custodians**: Institutions responsible for safeguarding and managing digital assets, who need detailed transaction records for reconciling holdings, auditing trading activities, and ensuring that client assets are handled with the highest level of transparency and compliance.\n\n### Data Handling Notes\n- **Large Data Volumes**: Some hours can contain over 5 million trades, so caution should be taken when processing responses from this endpoint. The substantial data size may impact memory usage and processing time.\n- **Efficient Data Processing with CSV Format**: For most cases, setting `response_format=CSV` will make large hourly trade files easier to process. This format allows you to handle data in chunks as it streams, improving efficiency and reducing memory overhead.\n- **Chunked Data Transmission**: Our endpoint pulls data in chunks of 16,000 trades from our blob storage, transforms it, and sends it to Nginx, which gzips it and delivers it to you if you've requested gzipped responses. For trades in the last 4 hours, we pull them in chunks of 1,000 trades from our Redis cluster and send them to Nginx. This chunked approach helps manage large volumes of data more effectively.\n- **Optimizing Data Retrieval**: Implement data streaming and chunk processing in your application to handle large datasets without overwhelming system resources. This is especially important when dealing with high-frequency trading data.\n- **Alternative for Recent Trades**: If you need to stay up to date with the latest trades at intervals more frequent than hourly, consider using the [Trades by Timestamp Endpoint](/documentation/data-api/spot_v2_historical_trades). This endpoint is better suited for real-time data retrieval and incremental updates.\n- **Data Integrity Considerations**: Be aware that some trades may be marked as INVALID due to exchange API errors or data processing issues. While you can set the `skip_invalid_messages` parameter to true to omit these trades, doing so may result in gaps in CCSEQ numbers, complicating the verification of complete data retrieval. For thorough analysis, it's recommended not to skip invalid messages.\n\nBy leveraging the Trades Full Hour endpoint, users can obtain comprehensive trade data essential for in-depth market analysis, compliance efforts, and strategic planning in the dynamic cryptocurrency trading environment.","tags":["Spot"],"operationId":"spot_v2_historical_trades_hour","x-section":"Spot","x-subsection":"Trade","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting trades you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the trades you are interested in. You can pass any timestamp within an hour but we will round it down to the full hour timestamp and return all trades in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1576771200},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid trades from the response. Invalid trades are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid trades are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid trades but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any trades were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_TRADE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v2/historical/trades":{"get":{"summary":"Trades By Timestamp","description":"This endpoint provides detailed, standardized, and deduplicated trade data for a specified instrument on a chosen exchange, starting from a given timestamp. This endpoint meticulously captures every transaction executed, detailing each trade's timestamp, transaction value, quantity, and associated market. Each trade also includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It's particularly useful for users who need to analyze specific periods of trading activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest spot trades.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated trade data for a specified instrument on a chosen exchange, starting from a given timestamp. This endpoint meticulously captures every transaction executed, detailing each trade's timestamp, transaction value, quantity, and associated market. Each trade also includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It's particularly useful for users who need to analyze specific periods of trading activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest spot trades.\n\n### Key Features\n- **Granular Trade Data**: Access detailed trade information including timestamps with nanosecond precision, transaction values, quantities, and associated markets.\n- **Standardized and Deduplicated Information**: Receive clean, consistent data free from duplicates for accurate cryptocurrency market analysis.\n- **Unique CCSEQ Numbers**: Each trade includes an individual CryptoCompare Sequence (CCSEQ) number for precise tracking and sequencing.\n- **Trade Side Identification**: Determine the buy or sell side of each trade to enhance market sentiment analysis.\n- **Real-Time Data Retrieval**: Obtain data starting from any given timestamp to focus on specific trading periods or events.\n- **Received and Reported Timestamps**: Compare exchange-reported timestamps with data receipt times for comprehensive temporal analysis.\n\n### Use Cases\n- **Detailed Trade Analysis**: Examine trade executions at specific moments for forensic market analysis or detailed trade reconstruction.\n- **Event-Driven Strategy Development**: Develop trading strategies that capitalize on market reactions to news or events by studying their immediate impact.\n- **Compliance and Audit Trails**: Utilize detailed transaction records to ensure trading activities meet regulatory standards and provide clear audit trails.\n- **Academic Research**: Conduct studies on market microstructures or trading pattern impacts using precise, timestamped trade data.\n- **Algorithmic Trading Models**: Build and refine algorithmic trading models that depend on high-frequency trade data for backtesting and live trading.\n\n### Target Audiences\n- **Financial Analysts and Market Researchers**: Professionals requiring precise historical data to analyze market trends or validate hypotheses.\n- **Regulatory and Compliance Professionals**: Individuals needing detailed transaction records for monitoring and reporting.\n- **Algorithmic Traders and Quantitative Analysts**: Developers of models dependent on high-frequency cryptocurrency trade data.\n- **Academic Institutions**: Researchers and students studying financial markets who need access to high-resolution data.\n- **Data Scientists**: Professionals working on machine learning models and predictive analytics in financial markets.\n\n### Data Handling Notes\n- **Identifying the First Trade Timestamp**: Use the FIRST_TRADE_SPOT_TIMESTAMP from the [Markets + Instruments](/documentation/data-api/spot_v1_markets_instruments) endpoint to determine the timestamp of the first trade for any given instrument. This establishes the starting point of your data analysis, ensuring a complete history from inception. This is the only scenario where you should not include the last_ccseq parameter in your request.\n- **Handling Identical Timestamps in Pagination**: If all returned trades share the same timestamp, refine your pagination by including both the timestamp of the last trade in the after_ts parameter and its CCSEQ in the last_ccseq parameter. Always adding last_ccseq in your requests ensures seamless pagination without missing any trades.\n- **Skipping Invalid Messages**: To maintain data accuracy, there are instances where trades may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid trades. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all trades. For comprehensive data, we recommend not skipping invalid messages.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest spot trades, it is not efficient for backfilling historical data or catching up on multiple days of missed trades. For backfilling, use the [Trades Full Hour Endpoint](/documentation/data-api/spot_v2_historical_trades_hour) instead. This endpoint stores trades in hourly batches, which can contain up to 5 million trades per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n- **Managing Timeouts from High Volumes of Invalidated Trades**: In cases where exchanges send large volumes of invalid trades — sometimes reaching millions — timeouts can occur as the system searches through numerous blob files before locating valid entries. To prevent these delays, set skip_invalid_messages to false, enabling the endpoint to return both valid and invalid trades. This approach avoids skipping over invalid trades and allows for smoother data retrieval. Paginate results based on the timestamp and CCSEQ of the last invalid trade to maintain continuity without missing data or encountering further timeouts.\n\nBy leveraging this endpoint, users gain access to high-resolution trade data essential for precise market analysis, application development, and strategic planning in the dynamic cryptocurrency trading environment.","tags":["Spot"],"operationId":"spot_v2_historical_trades","x-section":"Spot","x-subsection":"Trade","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"groups","in":"query","description":"When requesting trades you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest trade in the response.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1576774145},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of trades to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid trades from the response. Invalid trades are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid trades are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid trades but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any trades were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_TRADE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v1/historical/orderbook/l2/metrics/minute":{"get":{"summary":"Order Book L2 Metrics Minute","description":"This endpoint is an advanced resource tailored for users requiring accurate, minute-by-minute market metrics derived from order book snapshots in spot markets. Unlike capturing snapshots themselves, this endpoint provides calculated metrics such as the best bid and ask prices, mid-price, spread percentages, and detailed depth and slippage metrics at specific percentage levels. It ensures consistent data collection at the exact start of each minute, allowing for precise comparisons across different exchanges and instruments. By focusing on metrics built from raw order book messages, the endpoint is ideal for those who need high-resolution and synchronized market data for comprehensive analysis and decision-making.","x-extended-description-with-markdown":"This endpoint is an advanced resource tailored for users requiring accurate, minute-by-minute market metrics derived from order book snapshots in spot markets. Unlike capturing snapshots themselves, this endpoint provides calculated metrics such as the best bid and ask prices, mid-price, spread percentages, and detailed depth and slippage metrics at specific percentage levels. It ensures consistent data collection at the exact start of each minute, allowing for precise comparisons across different exchanges and instruments. By focusing on metrics built from raw order book messages, the endpoint is ideal for those who need high-resolution and synchronized market data for comprehensive analysis and decision-making.\n\n### Use Cases\n- **Algorithmic Trading and Strategy Backtesting**: Traders and quantitative analysts can utilize precise minute-by-minute metrics to simulate trading strategies and optimize algorithms based on historical data.\n- **Market Dynamics Analysis**: Provides detailed insights into market liquidity, depth, and price movements, enabling researchers to analyze market conditions and volatility more effectively.\n- **Risk Assessment and Compliance**: Helps in monitoring compliance with trading standards and assessing risks by providing precise metrics at defined moments.\n- **Investment Decision Support**: Offers institutional investors and financial professionals critical data points for better decision-making regarding large-scale investments and trades.\n\n### Target Audience\n- **Quantitative Analysts and Algorithmic Traders**: Professionals developing and refining trading algorithms.\n- **Financial Market Researchers**: Analysts needing in-depth analysis of market conditions and liquidity.\n- **Compliance Officers and Risk Managers**: Those responsible for adherence to financial regulations and risk assessments.\n- **Institutional Investors**: Stakeholders managing large portfolios and requiring consistent and detailed market metrics.\n\nThe Market Metrics Endpoint is an indispensable tool for financial professionals in the spot trading domain who depend on timely, accurate market data. By offering metrics derived from order book snapshots at the exact start of each minute, it allows for effective benchmarking and analysis across different platforms and instruments. This endpoint is your gateway to deeper insights into market behaviors, enabling enhanced algorithm testing, risk management, and strategic investment planning. Explore this endpoint to fully harness its capabilities and integrate precise market metrics into your financial analyses and operational strategies today. Transform raw data into actionable intelligence with our robust and reliable market metrics. Start building advanced financial models and strategies to navigate and excel in the dynamic world of spot markets.","tags":["Spot"],"operationId":"spot_v1_historical_orderbook_l2_metrics_minute","x-section":"Spot","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceusa","bitbank","bitfinex","bitflyer","bitget","bithumbkorea","bitmex","bitso","bitstamp","bittrex","bitvavo","btcmarkets","bullish","bybit","cexio","coinbase","coinbaseinternational","coinone","coinspro","cryptodotcom","erisx","gateio","gemini","hashkey","hitbtc","huobipro","independentreserve","itbit","korbit","kraken","kucoin","lmax","okcoin","okex","oslhongkong","poloniex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"groups","in":"query","description":"When requesting l2 snapshots entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","TOP_OF_BOOK","DEPTH_BEST_PRICE","DEPTH_MID_PRICE","SLIPPAGE_BEST_PRICE","SLIPPAGE_MID_PRICE","SLIPPAGE_RAW"],"x-enum-properties-info":{}}},"example":[]},{"name":"depth_percentage_levels","in":"query","description":"Comma separated percentage levels greater than 0, relative to the current market price, to analyze the order book depth. Each percentage represents a price level away from the market price at which the cumulative depth of bids and asks is calculated. Commonly used to assess market liquidity and depth at various price intervals from the current price. For example, 0.5,1,2,5 would represent order book depths at 0.5%, 1%, 2%, and 5% increments or decrements from the current market price.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["0.5","2","5"],"minItems":1,"maxItems":5,"items":{"type":"string"}},"example":["0.5","2","5"]},{"name":"depth_measurement_asset","in":"query","description":"Defines the asset in which the depth of the order book is measured which is defaulted to the quote currency. This parameter indicates whether the order book depth is evaluated in terms of the base currency or the quote currency in a trading pair. For instance, setting this parameter to USD in a BTC-USD pair means that the depth is calculated in USD, showing how much USD is required to reach certain depth levels in the order book.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"slippage_size_limits","in":"query","description":"Comma separated trade sizes that are greater than 0 for which slippage is to be calculated. This parameter allows users to understand the expected slippage for trades of different sizes. Slippage is the difference between the expected price of a trade and the price at which it is actually executed. Specifying sizes such as 10000,50000,100000 helps in assessing the potential price impact for trades of 10,000, 50,000, and 100,000 units of the base currency.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["50000","100000"],"minItems":1,"maxItems":15,"items":{"type":"string"}},"example":["50000","100000"]},{"name":"slippage_calculation_asset","in":"query","description":"Specifies the asset in which slippage is calculated which is defaulted to the quote currency. This parameter determines whether slippage is assessed in terms of the base currency or the quote currency in a trading pair. For example, setting this to BTC in a BTC-USD pair focuses the slippage calculation on the BTC amount, indicating how much the BTC quantity deviates from the expected amount in executed trades.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_METRICS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v2/historical/orderbook/l2/snapshots/minute":{"get":{"summary":"Order Book L2 Snapshots Minute","description":"This endpoint is a pivotal tool for professionals in the financial sector, providing minute-by-minute Level 2 order book snapshots for specified markets and instruments. This endpoint captures a comprehensive record of the order book’s state at the exact start of every minute, ensuring high fidelity in data reporting. Each snapshot encompasses all bids and asks updated to the zeroth nanosecond, detailing prices, quantities, and precise timestamps of last updates at the nanosecond level. For instance, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000. This level of detail supports precise market analysis and allows for consistent and accurate cross-market comparison at identical nanosecond intervals, which is crucial for users aiming to align and analyze order book data across different exchanges.","x-extended-description-with-markdown":"This endpoint is a pivotal tool for professionals in the financial sector, providing minute-by-minute Level 2 order book snapshots for specified markets and instruments. This endpoint captures a comprehensive record of the order book’s state at the exact start of every minute, ensuring high fidelity in data reporting. Each snapshot encompasses all bids and asks updated to the zeroth nanosecond, detailing prices, quantities, and precise timestamps of last updates at the nanosecond level. For instance, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000. This level of detail supports precise market analysis and allows for consistent and accurate cross-market comparison at identical nanosecond intervals, which is crucial for users aiming to align and analyze order book data across different exchanges.\n\n### Use Cases\n- **Fine-Tuning Algorithmic Strategies**: Traders can utilize the detailed minute-by-minute data to refine and enhance algorithmic trading strategies, ensuring responsiveness to quick shifts in market dynamics.\n- **Real-Time Trend Analysis**: Market analysts can leverage the granular data to quickly identify and act on emerging market trends, enhancing timely decision-making.\n- **Risk Management Optimization**: Risk managers can dissect minute-level historical data to uncover patterns and trends, which are critical for crafting effective risk mitigation strategies under specific market conditions.\n- **Backtesting and Strategy Validation**: Enables thorough backtesting and validation of trading strategies, helping traders and developers ensure that their algorithms perform robustly across different market scenarios.\n\n### Target Audience\n- **Algorithmic Traders and Quantitative Analysts**: Professionals who rely on precise, granular data to test and improve their trading algorithms.\n- **Financial Market Analysts**: Analysts in need of detailed order book data for comprehensive market analysis and trend spotting.\n- **Risk Management Professionals**: Those who evaluate and respond to financial risks through detailed analysis of historical market data.\n- **Strategy Developers and Backtesters**: Individuals who design and test trading strategies to ensure effectiveness before live deployment.\n\nThe Order Book L2 Snapshots Minute Endpoint offers unmatched granularity and accuracy in financial data collection, making it an essential resource for professionals engaged in financial markets, particularly those dealing with high-frequency trading environments. By providing detailed, nanosecond-precise snapshots of market conditions at the start of each minute, this endpoint enables users to conduct in-depth analyses, compare data across exchanges consistently, and make informed decisions with speed and precision. Explore the capabilities of this endpoint to elevate your trading strategies and market analyses. Harness the power of minute-level data granularity to enhance your operational readiness and strategic decision-making in the financial sector. Start building and refining your tools today to stay ahead in the rapidly evolving world of finance.","tags":["Spot"],"operationId":"spot_v2_historical_orderbook_l2_snapshots_minute","x-section":"Spot","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceusa","bitbank","bitfinex","bitflyer","bitget","bithumbkorea","bitmex","bitso","bitstamp","bittrex","bitvavo","btcmarkets","bullish","bybit","cexio","coinbase","coinbaseinternational","coinone","coinspro","cryptodotcom","erisx","gateio","gemini","hashkey","hitbtc","huobipro","independentreserve","itbit","korbit","kraken","kucoin","lmax","okcoin","okex","oslhongkong","poloniex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"depth","in":"query","description":"The number of top bids and asks to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":25000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_SNAPSHOTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v1/historical/orderbook/l2/consolidated/metrics/minute":{"get":{"summary":"Order Book L2 Consolidated Metrics Minute","description":"This endpoint is designed for users who need aggregated, minute-by-minute market metrics for a single instrument across multiple spot markets. Instead of providing metrics from a single market, this endpoint consolidates data from various markets, offering a comprehensive view of market activity. The calculated metrics include aggregated best bid and ask prices, mid-price, spread percentages, and combined depth and slippage metrics at specific percentage levels. It ensures consistent data collection across markets at the exact start of each minute, enabling precise cross-market comparisons. Ideal for users requiring high-resolution, multi-market synchronized data for in-depth analysis and strategic decision-making","x-extended-description-with-markdown":"This endpoint is designed for users who need aggregated, minute-by-minute market metrics for a single instrument across multiple spot markets. Instead of providing metrics from a single market, this endpoint consolidates data from various markets, offering a comprehensive view of market activity. The calculated metrics include aggregated best bid and ask prices, mid-price, spread percentages, and combined depth and slippage metrics at specific percentage levels. It ensures consistent data collection across markets at the exact start of each minute, enabling precise cross-market comparisons. Ideal for users requiring high-resolution, multi-market synchronized data for in-depth analysis and strategic decision-making.\n\n### Use Cases\n- **Cross-Market Strategy Optimization**: Traders and quants can optimize strategies by leveraging aggregated data to understand how an instrument behaves across different markets.\n- **Market Arbitrage and Efficiency Analysis**: Provides a holistic view to identify potential arbitrage opportunities and assess market efficiency by comparing metrics across various markets.\n- **Risk Management and Diversification**: Offers a broader perspective on market risks by consolidating data, assisting in risk management and diversification strategies.\n- **Global Market Research**: Enables researchers and analysts to conduct comprehensive studies on global market dynamics by comparing an instrument’s performance across multiple exchanges.\n\n### Target Audience\n- **Quantitative Analysts and Algorithmic Traders**: Professionals refining trading strategies with cross-market data.\n- **Financial Market Researchers**: Analysts requiring a comprehensive view of global market conditions.\n- **Risk Managers and Compliance Officers**: Those who need aggregated data to monitor risk and ensure compliance across different markets.\n- **Institutional Investors and Portfolio Managers**: Stakeholders looking for detailed, consolidated market metrics for informed decision-making.\n\nThe Consolidated Market Metrics Endpoint is essential for financial professionals in the spot trading domain who require a comprehensive and synchronized view of an instrument across multiple markets. By providing aggregated metrics derived from order book snapshots across various markets at the exact start of each minute, this endpoint enables effective benchmarking, risk assessment, and strategic planning. It empowers users to transform fragmented market data into a unified view, driving better algorithm testing, global market analysis, and investment decisions. Explore the full potential of this endpoint and integrate consolidated market metrics into your financial models and strategies today to excel in the dynamic world of global spot markets.","tags":["Spot"],"operationId":"spot_v1_historical_orderbook_l2_consolidated_metrics_minute","x-section":"Spot","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"instrument","in":"query","description":"The mapped instruments to retrieve on a specific market or all available markets.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":1,"maxItems":5,"items":{"type":"string","enum":["binance","binanceusa","bitbank","bitfinex","bitflyer","bitget","bithumbkorea","bitmex","bitso","bitstamp","bittrex","bitvavo","btcmarkets","bullish","bybit","cexio","coinbase","coinbaseinternational","coinone","coinspro","cryptodotcom","erisx","gateio","gemini","hashkey","hitbtc","huobipro","independentreserve","itbit","korbit","kraken","kucoin","lmax","okcoin","okex","oslhongkong","poloniex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["kraken","coinbase"]},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"groups","in":"query","description":"When requesting l2 snapshots entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","TOP_OF_BOOK","DEPTH_BEST_PRICE","DEPTH_MID_PRICE","SLIPPAGE_BEST_PRICE","SLIPPAGE_MID_PRICE","SLIPPAGE_RAW"],"x-enum-properties-info":{}}},"example":[]},{"name":"depth_percentage_levels","in":"query","description":"Comma separated percentage levels greater than 0, relative to the current market price, to analyze the order book depth. Each percentage represents a price level away from the market price at which the cumulative depth of bids and asks is calculated. Commonly used to assess market liquidity and depth at various price intervals from the current price. For example, 0.5,1,2,5 would represent order book depths at 0.5%, 1%, 2%, and 5% increments or decrements from the current market price.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["0.5","2","5"],"minItems":1,"maxItems":5,"items":{"type":"string"}},"example":["0.5","2","5"]},{"name":"depth_measurement_asset","in":"query","description":"Defines the asset in which the depth of the order book is measured which is defaulted to the quote currency. This parameter indicates whether the order book depth is evaluated in terms of the base currency or the quote currency in a trading pair. For instance, setting this parameter to USD in a BTC-USD pair means that the depth is calculated in USD, showing how much USD is required to reach certain depth levels in the order book.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"slippage_size_limits","in":"query","description":"Comma separated trade sizes that are greater than 0 for which slippage is to be calculated. This parameter allows users to understand the expected slippage for trades of different sizes. Slippage is the difference between the expected price of a trade and the price at which it is actually executed. Specifying sizes such as 10000,50000,100000 helps in assessing the potential price impact for trades of 10,000, 50,000, and 100,000 units of the base currency.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["100000","500000","1000000"],"minItems":1,"maxItems":15,"items":{"type":"string"}},"example":["100000","500000","1000000"]},{"name":"slippage_calculation_asset","in":"query","description":"Specifies the asset in which slippage is calculated which is defaulted to the quote currency. This parameter determines whether slippage is assessed in terms of the base currency or the quote currency in a trading pair. For example, setting this to BTC in a BTC-USD pair focuses the slippage calculation on the BTC amount, indicating how much the BTC quantity deviates from the expected amount in executed trades.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_CONSOLIDATED_METRICS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v1/historical/orderbook/l2/consolidated/snapshots/minute":{"get":{"summary":"Order Book L2 Consolidated Snapshots Minute","description":"This endpoint is an essential resource for financial professionals, providing minute-by-minute Level 2 order book snapshots for a specified instrument across multiple markets. It captures a comprehensive record of the order book’s state at the exact start of every minute, ensuring high fidelity in multi-market data reporting. Each snapshot includes all bids and asks updated to the zeroth nanosecond, detailing prices, quantities, and precise timestamps of the last updates at the nanosecond level for each market. For example, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000 across all selected markets. This level of granularity is crucial for users aiming to perform detailed cross-market analysis and comparison at identical nanosecond intervals, offering a unified view of an instrument’s behavior across different exchanges.","x-extended-description-with-markdown":"This endpoint is an essential resource for financial professionals, providing minute-by-minute Level 2 order book snapshots for a specified instrument across multiple markets. It captures a comprehensive record of the order book’s state at the exact start of every minute, ensuring high fidelity in multi-market data reporting. Each snapshot includes all bids and asks updated to the zeroth nanosecond, detailing prices, quantities, and precise timestamps of the last updates at the nanosecond level for each market. For example, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000 across all selected markets. This level of granularity is crucial for users aiming to perform detailed cross-market analysis and comparison at identical nanosecond intervals, offering a unified view of an instrument’s behavior across different exchanges.\n\n### Use Cases\n- **Cross-Market Strategy Refinement**: Traders can refine trading strategies by analyzing detailed minute-by-minute data across multiple markets for a single instrument, ensuring they capture nuanced differences in market behavior.\n- **Multi-Market Trend Analysis**: Market analysts can leverage synchronized, granular data to identify emerging trends and anomalies in an instrument’s performance across different exchanges.\n- **Advanced Risk Management**: Risk managers can assess minute-level historical data across multiple markets to identify market-specific risks and correlations, enabling more effective risk mitigation strategies.\n- **Comprehensive Backtesting and Validation**: Provides a robust framework for backtesting and validating trading strategies across multiple markets, ensuring they are resilient and adaptable to various market conditions.\n\n### Target Audience\n- **Algorithmic Traders and Quantitative Analysts**: Professionals who need precise, multi-market data to enhance and test trading algorithms.\n- **Financial Market Analysts**: Analysts requiring detailed order book data from multiple markets for comprehensive trend analysis and market comparisons.\n- **Risk Management Professionals**: Individuals focused on evaluating financial risks by analyzing detailed historical data across different markets.\n- **Strategy Developers and Backtesters**: Those who design and test trading strategies across multiple markets to ensure effectiveness and reliability before live deployment.\n\nThe Order Book L2 Consolidated Snapshots Minute Endpoint provides unparalleled granularity and accuracy in financial data collection, making it an indispensable tool for professionals engaged in financial markets, particularly those working with instruments traded on multiple exchanges. By offering detailed, nanosecond-precise snapshots of market conditions across various markets at the start of each minute, this endpoint enables users to conduct thorough analyses, compare data consistently across markets, and make informed decisions with precision. Explore the capabilities of this endpoint to elevate your trading strategies and market analyses across multiple exchanges. Harness the power of multi-market data granularity to enhance your strategic decision-making and operational readiness in the financial sector. Begin building and refining your tools today to excel in the dynamic world of finance.\n","tags":["Spot"],"operationId":"spot_v1_historical_orderbook_l2_consolidated_snapshots_minute","x-section":"Spot","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"instrument","in":"query","description":"The mapped instruments to retrieve on a specific market or all available markets.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD"},{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":1,"maxItems":5,"items":{"type":"string","enum":["binance","binanceusa","bitbank","bitfinex","bitflyer","bitget","bithumbkorea","bitmex","bitso","bitstamp","bittrex","bitvavo","btcmarkets","bullish","bybit","cexio","coinbase","coinbaseinternational","coinone","coinspro","cryptodotcom","erisx","gateio","gemini","hashkey","hitbtc","huobipro","independentreserve","itbit","korbit","kraken","kucoin","lmax","okcoin","okex","oslhongkong","poloniex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["kraken","coinbase"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"depth","in":"query","description":"The number of top bids and asks to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":25000},"example":100},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_CONSOLIDATED_SNAPSHOTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/spot/v1/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"This endpoint, specific to the Spot segment of the API, delivers vital metadata about financial instruments traded on specified exchanges, focusing solely on non-price related information. This endpoint is crucial for internal use, offering a comprehensive dataset that includes mappings, operational statuses, and historical data (first seen/last seen timestamps) about each instrument.","x-extended-description-with-markdown":"This endpoint, specific to the Spot segment of the API, delivers vital metadata about financial instruments traded on specified exchanges, focusing solely on non-price related information. This endpoint is crucial for internal use, offering a comprehensive dataset that includes mappings, operational statuses, and historical data (first seen/last seen timestamps) about each instrument. Unlike the Markets + Instruments endpoint, which provides a more streamlined subset of this data, the Instrument Metadata endpoint is designed for extensive internal analysis and integration, ensuring that organizations have access to all relevant details needed for managing and evaluating trading instruments.\n\n### Use Cases\n- **Internal Data Management**: Ideal for financial institutions requiring complete data oversight and internal record-keeping of trading instruments.\n- **Comprehensive Data Integration**: Supports complex integrations where extensive instrument metadata is crucial, far beyond the basic market data.\n- **Regulatory Compliance and Reporting**: Facilitates compliance with trading regulations by providing exhaustive historical and status data necessary for reporting and monitoring.\n- **Advanced Research and Analysis**: Offers the necessary data depth for detailed market research or backtesting strategies by providing thorough historical access and status insights.\n\n### Target Audience\n- **Data Managers in Financial Institutions**: Professionals tasked with managing and maintaining a comprehensive dataset of financial instruments.\n- **System Integrators and IT Professionals**: Users who integrate and maintain financial data systems requiring extensive data about each instrument.\n- **Compliance and Regulatory Officers**: Professionals needing detailed instrument histories and status information for compliance and monitoring.\n- **Financial Researchers and Analysts**: Analysts and researchers who need deep, detailed metadata for advanced financial analysis or historical research.\n\nThis endpoint serves as an essential resource for organizations that rely on having exhaustive, detailed metadata about financial instruments. For users requiring less detailed information, the Markets + Instruments endpoint may be more appropriate, offering a more accessible view of instrument data that satisfies general market analysis needs without the depth provided here.","tags":["Spot"],"operationId":"spot_v1_latest_instrument_metadata","x-section":"Spot","x-subsection":"General","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"coinbase"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","INTERNAL","MIGRATION","SOURCE"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v1/markets":{"get":{"summary":"Markets (Spot)","description":"This endpoint provides comprehensive information about various cryptocurrency spot markets, featuring extensive exchange metadata and operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific market, such as its trading pairs, volume, operational status, and comprehensive static metadata including exchange status, launch dates, supported trading types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency spot markets, featuring extensive exchange metadata and operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific market, such as its trading pairs, volume, operational status, and comprehensive static metadata including exchange status, launch dates, supported trading types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available markets. \n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_SPOT, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—spot markets show polling/streaming flags, while DEX markets include controlled addresses and AMM mechanism tags. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, and benchmark monitoring.\n\n### Use Cases\n- **Market Comparison**: Enables investors and analysts to compare and contrast various cryptocurrency markets using quantifiable benchmark scores, operational maturity metrics, and supported trading types, helping them identify the most active or most suitable markets for their trading strategies.\n- **Strategic Planning**: Businesses and entrepreneurs can use detailed market data including launch dates, integration status, and transparency signals to plan entry into specific cryptocurrency markets or adjust their offerings based on comprehensive exchange characteristics.\n- **Integration Auditability**: Developers can now see per-exchange integration setups—whether we poll or stream trades, when exchanges were integrated, and how many mapped instruments are currently live—reducing guesswork and API trial/error cycles.\n- **Compliance Automation**: Access to traceable external references including public URLs to exchange blogs, documentation, incorporation filings, and certifications helps automate compliance workflows and client onboarding processes.\n- **Benchmark Monitoring**: Direct access to current and historical benchmark scores enables building market surveillance engines and portfolio allocators with quantifiable measures of exchange transparency and operational maturity.\n- **Educational Resource**: Provides a comprehensive tool for understanding not just market data but the underlying infrastructure, integration methodologies, and operational characteristics of cryptocurrency exchanges.\n- **API Integration**: Developers can integrate this endpoint into applications requiring dynamic, structured metadata about cryptocurrency markets, with the ability to filter for specific data groups to optimize performance and relevance.\n\n### Target Audience\n- **Cryptocurrency Traders** and **Investment Analysts** seeking detailed insights into market infrastructure, benchmark scores, and operational status for informed trading decisions and risk assessment.\n- **Financial Institutions** and **Consultancy Firms** requiring comprehensive understanding of exchange operational maturity, compliance status, and integration capabilities to advise clients and plan business strategies.\n- **Risk Management Teams** leveraging benchmark scores, transparency signals, and operational metadata for exchange evaluation and portfolio risk assessment.\n- **Compliance Officers** utilizing structured access to exchange documentation, incorporation filings, certifications, and transparency reports for regulatory compliance and due diligence.\n- **Academic Researchers** studying cryptocurrency market structure, exchange operational patterns, and ecosystem evolution with access to historical benchmark data and integration timelines.\n- **Fintech Developers** building applications requiring structured exchange metadata, integration status information, and programmatic discovery capabilities for dynamic market analysis tools.\n- **Market Data Vendors** and **Analytics Platforms** integrating comprehensive exchange metadata to enhance their own products with detailed market infrastructure insights.\n- **Exchange Evaluation Services** using benchmark scores, operational metrics, and transparency data to provide comparative analysis and ratings of cryptocurrency trading venues.","tags":["Deprecated"],"operationId":"spot_v1_markets","x-section":"Deprecated","x-subsection":"General","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_markets","x-endpoint-group-name":"Markets (Spot)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_SPOT","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"spot_v2_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v2/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about various cryptocurrency spot markets, featuring extensive exchange metadata and operational details. By specifying a markets list through the \"markets\" parameter, users can retrieve details about specific markets, such as its trading pairs, volume, operational status, and comprehensive static metadata including exchange status, launch dates, supported trading types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency spot markets, featuring extensive exchange metadata and operational details. By specifying a markets list through the \"markets\" parameter, users can retrieve details about specific markets, such as its trading pairs, volume, operational status, and comprehensive static metadata including exchange status, launch dates, supported trading types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available markets. \n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_SPOT, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—spot markets show polling/streaming flags, while DEX markets include controlled addresses and AMM mechanism tags. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, and benchmark monitoring.\n\n### Use Cases\n- **Market Comparison**: Enables investors and analysts to compare and contrast various cryptocurrency markets using quantifiable benchmark scores, operational maturity metrics, and supported trading types, helping them identify the most active or most suitable markets for their trading strategies.\n- **Strategic Planning**: Businesses and entrepreneurs can use detailed market data including launch dates, integration status, and transparency signals to plan entry into specific cryptocurrency markets or adjust their offerings based on comprehensive exchange characteristics.\n- **Integration Auditability**: Developers can now see per-exchange integration setups—whether we poll or stream trades, when exchanges were integrated, and how many mapped instruments are currently live—reducing guesswork and API trial/error cycles.\n- **Compliance Automation**: Access to traceable external references including public URLs to exchange blogs, documentation, incorporation filings, and certifications helps automate compliance workflows and client onboarding processes.\n- **Benchmark Monitoring**: Direct access to current and historical benchmark scores enables building market surveillance engines and portfolio allocators with quantifiable measures of exchange transparency and operational maturity.\n- **Educational Resource**: Provides a comprehensive tool for understanding not just market data but the underlying infrastructure, integration methodologies, and operational characteristics of cryptocurrency exchanges.\n- **API Integration**: Developers can integrate this endpoint into applications requiring dynamic, structured metadata about cryptocurrency markets, with the ability to filter for specific data groups to optimize performance and relevance.\n\n### Target Audience\n- **Cryptocurrency Traders** and **Investment Analysts** seeking detailed insights into market infrastructure, benchmark scores, and operational status for informed trading decisions and risk assessment.\n- **Financial Institutions** and **Consultancy Firms** requiring comprehensive understanding of exchange operational maturity, compliance status, and integration capabilities to advise clients and plan business strategies.\n- **Risk Management Teams** leveraging benchmark scores, transparency signals, and operational metadata for exchange evaluation and portfolio risk assessment.\n- **Compliance Officers** utilizing structured access to exchange documentation, incorporation filings, certifications, and transparency reports for regulatory compliance and due diligence.\n- **Academic Researchers** studying cryptocurrency market structure, exchange operational patterns, and ecosystem evolution with access to historical benchmark data and integration timelines.\n- **Fintech Developers** building applications requiring structured exchange metadata, integration status information, and programmatic discovery capabilities for dynamic market analysis tools.\n- **Market Data Vendors** and **Analytics Platforms** integrating comprehensive exchange metadata to enhance their own products with detailed market infrastructure insights.\n- **Exchange Evaluation Services** using benchmark scores, operational metrics, and transparency data to provide comparative analysis and ratings of cryptocurrency trading venues.","tags":["Spot"],"operationId":"spot_v2_markets","x-section":"Spot","x-subsection":"General","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v2_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["kraken"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_SPOT","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v1/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves a comprehensive and standardized dictionary of mapped trading instruments across one or more spot markets. Each entry is keyed by a consistent instrument ID in the canonical BASE-QUOTE format, ensuring reliable reference and seamless data normalization across venues. The unified metadata schema provides integration-aware context with fields specific to spot market operations, including polling/streaming flags and operational status indicators.","x-extended-description-with-markdown":"This endpoint retrieves a comprehensive and standardized dictionary of mapped trading instruments across one or more spot markets. Each entry is keyed by a consistent instrument ID in the canonical BASE-QUOTE format, ensuring reliable reference and seamless data normalization across venues. The unified metadata schema provides integration-aware context with fields specific to spot market operations, including polling/streaming flags and operational status indicators. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).\n\nThe endpoint supports fine-grained market data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, RESOURCE_LINKS, and more. It combines per-instrument metadata with full market-level operational context, offering a holistic, integration-aware view of both the instruments and the infrastructure they trade on, enabling reliable cross-venue data normalization and deterministic mapping transforms.\n\n### Use Cases\n- **Data Integration & Normalization**: Enable fintech platforms and analytics tools to normalize instrument data across exchanges using standardized identifiers and deterministic mapping transforms\n- **Market Coverage Analysis**: Provide counts of total mapped and unmapped instruments per exchange, along with status breakdowns for comprehensive market coverage auditing\n- **Benchmark & Transparency Tracking**: Access benchmark scores and grades with historical scoring timelines to track operational evolution and transparency changes over time\n- **Trade Integration Intelligence**: Detail whether spot trades and order books are polled or streamed, backfill capabilities, and integration launch dates for building latency-sensitive data pipelines\n- **Portfolio & Risk Management**: Supply accurate lifecycle statuses and live trade metadata for precise asset tracking, exposure modeling, and risk assessment\n- **Compliance Automation**: Surface links to official documents, certifications, and public notices within market metadata for automated onboarding and regulatory workflows\n- **Dynamic Discovery & Assessment**: Power applications that dynamically fetch valid trading instruments and assess coverage status, integration depth, and operational maturity\n\n### Target Audience\n- **Backend Engineers & Data Platform Developers**: Building normalized market data infrastructure and cross-venue integration systems.\n- **Integration Engineers**: Managing standardized data feeds and mapping transforms across multiple cryptocurrency exchanges.\n- **Quantitative Researchers & Analysts**: Performing infrastructure analysis, benchmark scoring comparisons, and market evolution studies.\n- **Portfolio Managers & Risk Officers**: Requiring consistent, lifecycle-aware instrument IDs for position tracking and exposure evaluation.\n- **Product Managers**: Planning trading platforms, analytics tools, and market data products requiring standardized instrument references.\n- **Compliance Officers & Regulatory Teams**: Automating due diligence workflows using incorporation documents, exchange certifications, and asset references.\n- **Data Scientists**: Building market analysis models requiring clean, canonical instrument mapping and operational context.\n- **Data Vendors & Index Providers**: Needing standardized mapping layers for normalized datasets, client-facing interfaces, and reference feeds.\n- **Business Intelligence Teams**: Conducting market coverage analysis, competitive assessments, and operational benchmarking across venues.","tags":["Spot"],"operationId":"spot_v1_markets_instruments","x-section":"Spot","x-subsection":"General","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"The mapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD","ETH-USD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_SPOT","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/spot/v1/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint exposes all instruments (trading pairs) available across selected markets, including both standardized and unmapped instruments. It provides raw market state for discovering newly listed pairs, edge cases, and instruments awaiting standardization. The unified schema supports integration context, allowing developers to inspect exchange capabilities, instrument status, and technical specifications needed for automated system building.","x-extended-description-with-markdown":"This endpoint exposes all instruments (trading pairs) available across selected markets, including both standardized and unmapped instruments. It provides raw market state for discovering newly listed pairs, edge cases, and instruments awaiting standardization. The unified schema supports integration context, allowing developers to inspect exchange capabilities, instrument status, and technical specifications needed for automated system building.\n\nThe endpoint supports fine-grained market data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, RESOURCE_LINKS, and more. The consistent schema design prioritizes programmatic consumption with efficient filtering and integration-ready metadata, reducing manual configuration overhead and supporting fully automated market data workflows across diverse exchange environments.\n\n### Use Cases\n- **Market Data Infrastructure**: Build comprehensive data pipelines that automatically discover and ingest new trading pairs across multiple exchanges without manual configuration.\n- **Trading System Automation**: Power algorithmic trading platforms and backtesting engines with authoritative instrument metadata and real-time availability status.\n- **Market Surveillance & Compliance**: Monitor complete instrument catalogs for regulatory reporting, suspicious activity detection, and audit trail maintenance.\n- **Product Development**: Enable search, filtering, and categorization features in trading applications, portfolio management tools, and market analysis platforms.\n- **Business Intelligence**: Support market research, competitive analysis, and strategic decision-making with comprehensive trading pair visibility.\n- **Risk Management**: Maintain complete awareness of available instruments for position monitoring, exposure calculation, and compliance validation.\n\n### Target Audience\n- **Backend Engineers & Data Platform Developers**: Building ingestion systems, normalization pipelines, and market data infrastructure.\n- **Integration Engineers**: Managing exchange connectivity and automated discovery of new trading instruments.\n- **DevOps & Platform Teams**: Supporting observability, monitoring, and alerting for dynamic trading infrastructure.\n- **Quantitative Researchers & Traders**: Developing research tools and trading algorithms requiring comprehensive instrument metadata.\n- **Product Managers**: Planning features for trading platforms, portfolio tools, and market analysis applications.\n- **Business Analysts**: Conducting market research, competitive analysis, and coverage assessment across cryptocurrency exchanges.\n- **Compliance Officers**: Ensuring regulatory reporting completeness and maintaining audit trails for instrument availability.\n- **Data Scientists**: Building market analysis models and research frameworks requiring comprehensive trading pair datasets.\n- **Customer Success Teams**: Supporting clients who need visibility into available trading instruments and market coverage.\n\n**For standardized, normalized instrument data**, consider using the [mapped spot instruments endpoint](https://developers.coindesk.com/documentation/data-api/spot_v1_markets_instruments) instead. This endpoint provides cleaned, deduplicated trading pairs with consistent naming conventions, standardized metadata, and unified symbols across exchanges—ideal for applications requiring reliable cross-exchange comparisons, historical analysis, and streamlined integration workflows. The mapping process eliminates exchange-specific quirks and data inconsistencies, making it significantly easier to build robust trading systems, analytics dashboards, and compliance reporting without handling raw exchange variations. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).","tags":["Spot"],"operationId":"spot_v1_markets_instruments_unmapped","x-section":"Spot","x-subsection":"General","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"spot_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aax","abcc","acx","aidosmarket","alphaex","archax","ascendex","ataix","backpack","bequant","bgogo","bibox365","bigone","bilaxy","binance","binanceaggregate","binanceusa","bingx","bisq","bit","bit2c","bit2me","bitbank","bitbay","bitbns","bitbuy","bitci","bitexbook","bitfex","bitfinex","bitflyer","bitflyereu","bitflyerfx","bitflyerus","bitforex","bitget","bithumbglobal","bithumbkorea","bitinka","bitkub","bitmart","bitmex","bitopro","bitpanda","bitrue","bitso","bitstamp","bittrex","bitunix","bitvavo","bkex","blackturtle","bleutrade","blockchaincom","btcalpha","btcbox","btcex","btcmarkets","btcturk","btse","buda","bullish","buyucoin","bwexchange","bybit","bydfi","catex","cexio","coinbase","coinbaseinternational","coincheck","coincorner","coindcx","coindeal","coinex","coinfalcon","coinfield","coinjar","coinmate","coinone","coinsbit","coinspro","cointiger","coinw","coss","crex24","crosstower","cryptocarbon","cryptodotcom","cryptology","cryptopia","cryptsy","cube","currency","dcoin","ddex","decoin","deribit","digifinex","edxmarkets","erisx","etoro","exmo","fastex","fcoin","figuremarkets","flipster","foxbit","ftx","ftxus","garantex","gateio","gemini","globitex","gopax","graviex","hashkey","hitbtc","huobijapan","huobipro","hyperliquid","independentreserve","indodax","indoex","inx","itbit","korbit","kraken","kucoin","kuna","latoken","lbank","liqnet","liquid","litebit","lmax","luno","lykke","mercadobtc","mercatox","mexc","mock","mtgox","ndax","nominex","okcoin","okex","onetrading","osl","oslhongkong","p2pb2b","pancakeswap","paramountdax","paribu","phemex","poloniex","probit","safetrade","sigenpro","therocktrading","tidefi","timex","tokenomy","toobit","tradeogre","uniswap","unocoin","upbit","valr","vitex","wazirx","whitebit","woo","xcoex","xtpub","yellow","yobit","zaif","zbdotcom","zbg","zebitex","zonda",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"The unmapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["XXBTZUSD","XETHZUSD"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_SPOT","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/latest/tick":{"get":{"summary":"Instrument Latest Tick","description":"This endpoint provides real-time trade and market data for selected futures instruments on a specified exchange. It delivers the most current price details along with aggregated data over various time periods, including hourly, daily, weekly, monthly, and annually. This comprehensive dataset not only includes the latest price information but also offers detailed metrics on volume, open-high-low-close (OHLC) values, and changes over specified periods. Such extensive coverage makes it an indispensable resource for tracking market trends, analyzing futures contracts, and making informed trading decisions in the dynamic futures market environment.","x-extended-description-with-markdown":"This endpoint provides real-time trade and market data for selected futures instruments on a specified exchange. It delivers the most current price details along with aggregated data over various time periods, including hourly, daily, weekly, monthly, and annually. This comprehensive dataset not only includes the latest price information but also offers detailed metrics on volume, open-high-low-close (OHLC) values, and changes over specified periods. Such extensive coverage makes it an indispensable resource for tracking market trends, analyzing futures contracts, and making informed trading decisions in the dynamic futures market environment.\n\n### Use Cases\n- **Real-time Market Monitoring**: Traders and analysts can monitor real-time price movements and volume changes of selected futures instruments to make timely and informed trading decisions.\n- **Historical Data Analysis**: Financial analysts have access to historical aggregated data, essential for analyzing market trends, performing back-testing of trading strategies, or conducting technical analysis on futures markets.\n- **Reporting and Visualization**: Data journalists and researchers can use the detailed data provided to create reports or visual representations of market behaviors over various periods, particularly useful in understanding the futures market dynamics.\n- **Algorithmic Trading**: Developers and trading firms can integrate this endpoint into algorithmic trading systems to utilize real-time and historical data for automated trading decisions in futures markets.\n\n### Target Audience\n- **Financial Analysts** and **Market Researchers** who require detailed and up-to-date market data to analyze trends and prepare forecasts specifically for futures markets.\n- **Trading Firms** and **Individual Traders** who need real-time price information and historical data aggregates for effective trading strategy formulation and execution in the futures market.\n- **Fintech Developers** looking to integrate futures market data into applications or trading platforms for enhanced functionality.\n- **Academic Researchers** and **Data Scientists** interested in the dynamics of futures markets for academic and experimental purposes.\n\nThis endpoint is tailored to empower professionals involved in futures trading with accurate and timely data that enhances decision-making capabilities. Whether for immediate trading action, deep analytical tasks, or integrating with advanced trading systems, the Futures Instrument Latest Tick Endpoint is your gateway to mastering the futures markets.","tags":["Futures"],"operationId":"futures_v1_latest_tick","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["XBTUSD","ETH-USD-INVERSE-PERPETUAL"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","LAST_PROCESSED","TOP_OF_BOOK","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/historical/days":{"get":{"summary":"Historical OHLCV+ Day","description":"This endpoint offers daily aggregated candlestick data for specific futures instruments on designated exchanges. It provides crucial trading data points such as open, high, low, close prices (OHLC), and volumes, vital for traders and analysts aiming to understand historical price movements and market behavior over specific periods. The flexibility of this endpoint is enhanced by supporting a range of parameters to tailor the data retrieval to specific needs, such as market selection, instrument details, and aggregation customization. This makes it a highly adaptable tool for historical data analysis in the context of futures markets.","x-extended-description-with-markdown":"This endpoint offers daily aggregated candlestick data for specific futures instruments on designated exchanges. It provides crucial trading data points such as open, high, low, close prices (OHLC), and volumes, vital for traders and analysts aiming to understand historical price movements and market behavior over specific periods. The flexibility of this endpoint is enhanced by supporting a range of parameters to tailor the data retrieval to specific needs, such as market selection, instrument details, and aggregation customization. This makes it a highly adaptable tool for historical data analysis in the context of futures markets.\n\n### Use Cases\n- **Market Trend Analysis**: Investors and financial analysts can study historical price actions to identify trends, patterns, and potential directions in futures markets, which are critical for forecasting and strategic investment planning.\n- **Strategy Backtesting**: Futures traders can utilize historical data to backtest trading strategies to ensure they are robust and effective under various market conditions before deployment in live trading.\n- **Academic Research**: Academics and students interested in financial markets can analyze historical futures market data for research papers or projects that explore market dynamics and financial instruments.\n- **Financial Reporting**: Financial journalists and market researchers can employ detailed historical data to produce more insightful and accurate reports on the futures market conditions and trends.\n\n### Target Audience\n- **Futures Traders** who need to analyze past market conditions to refine their trading strategies and improve their market entries and exits.\n- **Data Analysts** and **Economists** who require detailed historical trading data for model building, economic research, or risk assessment in the futures markets.\n- **Financial Institutions** that require comprehensive market data to assess investment opportunities or manage risks associated with futures trading.\n- **Educational Institutions** and their affiliates seeking real-world data to use in courses, workshops, or research focused on financial markets, particularly futures trading.\n\nThe Futures Historical OHLCV+ Day Endpoint is an essential resource for anyone involved in the futures trading sector, offering critical insights that support strategic decision-making, educational endeavors, and technological innovation. Whether for market analysis, strategy development, or academic research, this endpoint provides the necessary data to navigate the complexities of futures markets effectively.","tags":["Futures"],"operationId":"futures_v1_historical_days","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/hours":{"get":{"summary":"Historical OHLCV+ Hour","description":"This endpoint provides hourly aggregated candlestick data for specific futures instruments across various exchanges. It delivers essential trading data points such as open, high, low, close prices (OHLC), and volume, crucial for traders and analysts who need to understand detailed price movements and market behavior on an hour-by-hour basis. The flexibility of this endpoint is highlighted by its support for multiple parameters that allow users to customize data retrieval based on market selection, instrument details, and desired aggregation levels. This makes it a powerful tool for conducting granular historical analysis of futures markets.","x-extended-description-with-markdown":"This endpoint provides hourly aggregated candlestick data for specific futures instruments across various exchanges. It delivers essential trading data points such as open, high, low, close prices (OHLC), and volume, crucial for traders and analysts who need to understand detailed price movements and market behavior on an hour-by-hour basis. The flexibility of this endpoint is highlighted by its support for multiple parameters that allow users to customize data retrieval based on market selection, instrument details, and desired aggregation levels. This makes it a powerful tool for conducting granular historical analysis of futures markets.\n\n### Use Cases\n- **Intraday Trading Analysis**: Enables traders to analyze hourly price movements to fine-tune their trading strategies, capturing short-term opportunities within the futures market.\n- **Risk Management**: Offers risk managers detailed data to assess volatility and price trends at an hourly scale, enhancing their ability to mitigate risks associated with intraday market shifts.\n- **Quantitative Modelling**: Provides quantitative analysts with high-resolution data necessary for developing complex trading algorithms and models that predict futures price movements.\n- **Market Reporting**: Assists financial journalists and market researchers in creating hourly updates or detailed reports on market conditions, providing a snapshot of market dynamics over specific hours.\n\n### Target Audience\n- **Futures Traders** who require hourly data to make informed decisions and optimize their trading strategies in fast-moving markets.\n- **Risk Managers** in financial institutions who monitor and manage the risks of futures trading on an hourly basis.\n- **Quantitative Analysts** who develop and refine predictive models and algorithms using detailed, short-term market data.\n- **Financial Journalists** and Market Researchers who need to report on or analyze the futures market with high granularity.\n\nThe Futures Historical OHLCV+ Hourly Endpoint is indispensable for professionals requiring precise, timely, and actionable data on futures markets. Whether for enhancing trading strategies, managing risks, developing financial models, or generating detailed market reports, this endpoint provides the critical hourly insights needed to effectively navigate and succeed in the dynamic world of futures trading.","tags":["Futures"],"operationId":"futures_v1_historical_hours","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","TRADE","VOLUME"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/minutes":{"get":{"summary":"Historical OHLCV+ Minute","description":"This endpoint offers minute-by-minute aggregated candlestick data for specific futures instruments across various exchanges. It provides detailed trading data points such as open, high, low, close prices (OHLC), and volume, essential for traders and analysts who need to dissect price movements and market behavior at the most granular level. With support for multiple parameters that allow for customization of data retrieval based on market selection, instrument details, and desired aggregation levels, this endpoint is a crucial tool for conducting deep, minute-level historical analysis of futures markets.","x-extended-description-with-markdown":"This endpoint offers minute-by-minute aggregated candlestick data for specific futures instruments across various exchanges. It provides detailed trading data points such as open, high, low, close prices (OHLC), and volume, essential for traders and analysts who need to dissect price movements and market behavior at the most granular level. With support for multiple parameters that allow for customization of data retrieval based on market selection, instrument details, and desired aggregation levels, this endpoint is a crucial tool for conducting deep, minute-level historical analysis of futures markets.\n\n### Use Cases\n- **High-Frequency Trading Analysis**: Traders engaged in high-frequency trading can utilize minute-level data to optimize trading algorithms and strategies, capitalizing on minute-to-minute market fluctuations.\n- **Micro Market Trend Analysis**: Provides the ability to track very short-term market trends and patterns, offering insights that help traders make quick, informed decisions.\n- **Backtesting Trading Models**: Essential for traders and quantitative analysts who need to test the efficacy of trading strategies at a minute level to ensure precision in execution and theory.\n- **Regulatory Compliance** and **Monitoring**: Helps compliance officers monitor trading activities at a detailed level, ensuring that trading practices comply with industry regulations and standards.\n\n### Target Audience\n- **Day Traders** and **High-Frequency Traders** who operate on a minute-by-minute basis and require immediate, accurate market data for effective decision-making.\n- **Quantitative Analysts** who build and refine complex trading algorithms that depend on minute-level market data.\n- **Risk Managers** focusing on intra-day risk exposure and needing granular data to effectively manage and mitigate risks.\n- **Regulatory Compliance Officers** who require detailed and precise historical data to monitor and ensure compliance with trading regulations.\n\nThe Futures Historical OHLCV+ Minute Endpoint is invaluable for professionals involved in the fast-paced environment of futures trading, where understanding minute-level dynamics can be the key to success. This endpoint facilitates a comprehensive view of market conditions, enabling detailed analysis and strategic decision-making based on the most granular data available. Whether for trading, compliance, risk management, or research, this tool provides the critical insights necessary to navigate the complexities of futures markets effectively.","tags":["Futures"],"operationId":"futures_v1_historical_minutes","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","TRADE","VOLUME"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v2/historical/trades/hour":{"get":{"summary":"Trades Full Hour","description":"The Futures Trades Full Hour Endpoint is designed to provide tick-level trade data, detailing every executed transaction for a selected futures instrument on a specified exchange during a particular hour. This endpoint is invaluable for users who need to catch up on comprehensive transaction details within a specific timeframe, offering a complete record of all trades executed within that hour. It is particularly useful for detailed post-trade analysis, compliance reviews, forensic accounting, or algorithm backtesting where understanding historical trading activity down to the tick is crucial.","x-extended-description-with-markdown":"The Futures Trades Full Hour Endpoint is designed to provide tick-level trade data, detailing every executed transaction for a selected futures instrument on a specified exchange during a particular hour. This endpoint is invaluable for users who need to catch up on comprehensive transaction details within a specific timeframe, offering a complete record of all trades executed within that hour. It is particularly useful for detailed post-trade analysis, compliance reviews, forensic accounting, or algorithm backtesting where understanding historical trading activity down to the tick is crucial.\n\n### Use Cases\n- **Historical Market Analysis**: Enables traders and analysts to review past market conditions by examining every trade executed during specific hours, aiding in the understanding of market behaviors and price movements.\n- **Compliance and Audit Trails**: Provides compliance officers and auditors with precise data needed for regulatory reviews, ensuring all trading activities are transparent and accounted for.\n- **Algorithm Testing and Backtesting**: Allows developers and quantitative analysts to utilize exact historical trade data to refine and validate trading algorithms, ensuring strategies are tested against real historical conditions.\n- **Data Integration for Market Research**: Researchers can integrate detailed historical trade data into market models, enhancing the accuracy of market simulations and forecasts.\n\n### Target Audience\n- **Quantitative Analysts and Algorithmic Traders**: Professionals who require detailed trade data to develop, test, and refine sophisticated trading algorithms.\n- **Compliance Officers and Auditors**: Those responsible for ensuring trading activities comply with regulatory standards and who need to reconstruct past trading sessions accurately.\n- **Financial Historians and Market Researchers**: Academics and analysts who study market trends and dynamics over time, relying on precise, time-stamped trade data.\n- **Risk Managers**: Professionals who analyze past market events to identify risk factors and improve risk mitigation strategies.\n\nThe Futures Trades Full Hour Endpoint is a critical tool for professionals who need to access complete and accurate historical trading data for futures markets. By providing tick-level details of every trade within a specified hour, this endpoint ensures users have the data necessary to conduct thorough analyses, comply with regulatory requirements, develop robust trading systems, and perform comprehensive market research. Whether for catching up on recent trading activity, conducting detailed analyses, or ensuring compliance, this tool delivers the essential data to meet the needs of a diverse range of financial professionals.","tags":["Futures"],"operationId":"futures_v2_historical_trades_hour","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the trades you are interested in. You can pass any timestamp within an hour but we will round it down to the full hour timestamp and return all trades in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1648029600},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid trades from the response. Invalid trades are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid trades are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid trades but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any trades were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_TRADE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/trades":{"get":{"summary":"Trades By Timestamp","description":"The Futures Trades By Timestamp Endpoint delivers tick-level trade data, documenting every executed transaction for a specified futures instrument on a chosen exchange, starting from a designated timestamp. This powerful tool is essential for users needing detailed historical trade information and is equally valuable for capturing the latest trades as soon as they occur on futures exchanges. The endpoint's versatility makes it ideal for a variety of professional needs including detailed post-trade analysis, real-time trading strategy adjustment, compliance auditing, and algorithm testing, where both historical and the most current transaction details are crucial.","x-extended-description-with-markdown":"The Futures Trades By Timestamp Endpoint delivers tick-level trade data, documenting every executed transaction for a specified futures instrument on a chosen exchange, starting from a designated timestamp. This powerful tool is essential for users needing detailed historical trade information and is equally valuable for capturing the latest trades as soon as they occur on futures exchanges. The endpoint's versatility makes it ideal for a variety of professional needs including detailed post-trade analysis, real-time trading strategy adjustment, compliance auditing, and algorithm testing, where both historical and the most current transaction details are crucial.\n\n### Use Cases\n- **Real-time Market Monitoring**: Enables traders to receive up-to-the-minute trading data, allowing them to react swiftly to market movements and adjust their strategies accordingly.\n- **Historical Market Reconstruction**: Analysts and traders can use this endpoint to reconstruct market activity from a specific point in time, understanding the market dynamics that influenced trading decisions.\n- **Algorithm Testing and Optimization**: Provides quantitative analysts with precise historical and real-time data to test, refine, and implement trading algorithms.\n- **Compliance and Auditing**: Critical for compliance officers who need to ensure trading activities conform to regulations, offering an accurate record of all transactions from a specific timestamp onwards.\n- **Academic and Financial Research**: Enables thorough analysis of market trends and trader behavior by providing detailed transaction data starting from significant market events or periods.\n\n### Target Audience\n- **Day Traders and Intraday Traders**: Professionals who rely on immediate data feeds to inform their trading decisions and maximize profitability.\n- **Quantitative Analysts and Algorithmic Traders**: Those who develop and adjust high-frequency trading models that require real-time and historical trade data.\n- **Compliance Officers and Regulatory Auditors**: Professionals tasked with verifying trading records against market regulations and standards.\n- **Market Researchers and Financial Historians**: Analysts interested in detailed transaction data for studies on market dynamics and trading patterns.\n\n### Data Handling Notes:\n- **Identifying the First Trade Timestamp**: To accurately determine the timestamp of the first trade for any given instrument, utilize the FIRST_TRADE_FUTURES_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all trades returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last trade in the after_ts parameter and the CCSEQ of that trade in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any trades, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Trades**: To maintain data accuracy, there are instances where trades may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid trades. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all trades. For comprehensive data, we recommend not skipping invalid trades.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest trades, it is not efficient for backfilling historical data or catching up on multiple days of missed trades. For backfilling, use the [Trades Full Hour Endpoint](/documentation/data-api/futures_v2_historical_trades_hour) instead. This endpoint stores trades in hourly batches, which can contain up to 5 million trades per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThe Futures Trades By Timestamp Endpoint is a critical resource for a wide range of financial professionals. By delivering both historical and real-time transaction data with tick-level precision, this endpoint ensures users can track market activity comprehensively from any specified point, making it an invaluable tool for risk management, strategy development, compliance monitoring, and market research. Whether the goal is to capture the latest market changes as they happen or to analyze past trading activities for deeper insights, this tool provides the essential data necessary to navigate the complexities of the futures markets effectively.","tags":["Futures"],"operationId":"futures_v2_historical_trades","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"XBTUSD"},{"name":"groups","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest trade in the response.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1443184465},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of trades to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid trades from the response. Invalid trades are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid trades are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid trades but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any trades were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_TRADE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/orderbook/l2/metrics/minute":{"get":{"summary":"Order Book L2 Metrics Minute","description":"This endpoint is a highly specialized resource designed for financial professionals who analyze and engage with futures markets. This endpoint provides minute-by-minute metrics derived from Level 2 order book snapshots of futures contracts, capturing critical market dynamics and liquidity indicators at the exact start of each minute. It facilitates detailed analysis of market depth, bid-ask spreads, and other crucial trading metrics that are vital for understanding market behavior and designing effective trading strategies in the futures space. This tool is invaluable for those needing high-resolution data to conduct rigorous, quantitative analyses that inform trading decisions and risk assessments in real-time.","x-extended-description-with-markdown":"This endpoint is a highly specialized resource designed for financial professionals who analyze and engage with futures markets. This endpoint provides minute-by-minute metrics derived from Level 2 order book snapshots of futures contracts, capturing critical market dynamics and liquidity indicators at the exact start of each minute. It facilitates detailed analysis of market depth, bid-ask spreads, and other crucial trading metrics that are vital for understanding market behavior and designing effective trading strategies in the futures space. This tool is invaluable for those needing high-resolution data to conduct rigorous, quantitative analyses that inform trading decisions and risk assessments in real-time.\n\n### Use Cases\n- **Market Depth Analysis**: Enables traders to understand the liquidity and depth of the market, helping to assess the feasibility of large order executions without significant price impact.\n- **Volatility Trend Monitoring**: Analysts can track volatility in futures markets by analyzing spread metrics and price fluctuations, aiding in the prediction of market movements.\n- **Algorithmic Trading Development**: Quantitative developers can use detailed metrics to back-test and refine complex trading algorithms, ensuring their effectiveness under various market conditions.\n- **Risk Management**: Provides risk managers with precise data to identify potential price slippages and optimize strategies to mitigate risks associated with futures trading.\n- **Regulatory Compliance**: Helps compliance officers ensure that trading activities align with regulatory requirements by providing transparent and detailed market data.\n\n### Target Audiences\n- **Futures Traders**: Professionals actively trading in the futures markets who require granular data to make informed trading decisions.\n- **Quantitative Analysts**: Specialists in developing and testing algorithms based on deep, quantitative market analysis.\n- **Financial Risk Managers**: Individuals responsible for overseeing and mitigating risks in trading portfolios, particularly in futures.\n- **Market Researchers**: Analysts conducting detailed market studies, especially those related to futures markets and their behaviors.\n- **Regulatory Compliance Officers**: Professionals ensuring that trading practices meet strict industry and government standards.\n\nThe Futures Order Book L2 Metrics Minute Endpoint is an essential tool for professionals operating in the futures markets, offering unparalleled access to minute-level order book metrics. This endpoint equips users with the data necessary to perform detailed market analyses, develop and refine trading algorithms, manage risks effectively, and ensure compliance with regulatory standards. Embrace the power of high-resolution, accurate market data to enhance your trading strategies and decision-making processes. Dive into this rich dataset to unlock insights that can transform your approach to futures trading. Start leveraging this critical information today to stay competitive and informed in the dynamic futures marketplace.","tags":["Futures"],"operationId":"futures_v2_historical_orderbook_l2_metrics_minute","x-section":"Futures","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v2_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","coinbaseinternational","cryptodotcom","deribit","hyperliquid","kraken","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"kraken"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"groups","in":"query","description":"When requesting l2 snapshots entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","TOP_OF_BOOK","DEPTH_BEST_PRICE","DEPTH_MID_PRICE","SLIPPAGE_BEST_PRICE","SLIPPAGE_MID_PRICE","SLIPPAGE_RAW"],"x-enum-properties-info":{}}},"example":[]},{"name":"depth_percentage_levels","in":"query","description":"Comma separated percentage levels greater than 0, relative to the current market price, to analyze the order book depth. Each percentage represents a price level away from the market price at which the cumulative depth of bids and asks is calculated. Commonly used to assess market liquidity and depth at various price intervals from the current price. For example, 0.5,1,2,5 would represent order book depths at 0.5%, 1%, 2%, and 5% increments or decrements from the current market price.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["0.5","2","5"],"minItems":1,"maxItems":5,"items":{"type":"string"}},"example":["0.5","2","5"]},{"name":"depth_measurement_asset","in":"query","description":"Defines the asset in which the depth of the order book is measured which is defaulted to the quote currency. This parameter indicates whether the order book depth is evaluated in terms of the base currency or the quote currency in a trading pair. For instance, setting this parameter to USD in a BTC-USD pair means that the depth is calculated in USD, showing how much USD is required to reach certain depth levels in the order book.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"slippage_size_limits","in":"query","description":"Comma separated trade sizes that are greater than 0 for which slippage is to be calculated. This parameter allows users to understand the expected slippage for trades of different sizes. Slippage is the difference between the expected price of a trade and the price at which it is actually executed. Specifying sizes such as 10000,50000,100000 helps in assessing the potential price impact for trades of 10,000, 50,000, and 100,000 units of the base currency.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["50000","100000"],"minItems":1,"maxItems":15,"items":{"type":"string"}},"example":["50000","100000"]},{"name":"slippage_calculation_asset","in":"query","description":"Specifies the asset in which slippage is calculated which is defaulted to the quote currency. This parameter determines whether slippage is assessed in terms of the base currency or the quote currency in a trading pair. For example, setting this to BTC in a BTC-USD pair focuses the slippage calculation on the BTC amount, indicating how much the BTC quantity deviates from the expected amount in executed trades.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_ORDERBOOK_L2_METRICS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/orderbook/l2/snapshots/minute":{"get":{"summary":"Order Book L2 Snapshots Minute","description":"This endpoint offers a crucial dataset for financial professionals involved with futures trading. This endpoint delivers minute-by-minute Level 2 order book snapshots for various futures contracts across multiple exchanges. Each snapshot provides a detailed, comprehensive record of the order book's state at the exact start of every minute, including all updates up to and including the zeroth nanosecond. For instance, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000. This ensures the utmost accuracy and consistency in data representation. The endpoint captures extensive data on bids and asks, including prices, quantities, and precise update timestamps, essential for analyzing market depth and liquidity in the futures market. By facilitating precise comparisons of order book states across different exchanges at exactly the same time, this tool is invaluable for traders and analysts focusing on futures markets.","x-extended-description-with-markdown":"This endpoint offers a crucial dataset for financial professionals involved with futures trading. This endpoint delivers minute-by-minute Level 2 order book snapshots for various futures contracts across multiple exchanges. Each snapshot provides a detailed, comprehensive record of the order book's state at the exact start of every minute, including all updates up to and including the zeroth nanosecond. For instance, a snapshot labeled for 10:10 includes all order book data up to 10:10:00.000000000. This ensures the utmost accuracy and consistency in data representation. The endpoint captures extensive data on bids and asks, including prices, quantities, and precise update timestamps, essential for analyzing market depth and liquidity in the futures market. By facilitating precise comparisons of order book states across different exchanges at exactly the same time, this tool is invaluable for traders and analysts focusing on futures markets.\n\n### Use Cases\n- **Strategic Futures Trading**: Traders can leverage precise, minute-level snapshots to make informed decisions about entry and exit points, optimizing trading strategies based on real-time market conditions.\n- **Hedging Strategies Enhancement**: Provides crucial data for organizations looking to hedge against price volatility in commodities, currencies, or indices.\n- **Market Sentiment Analysis**: Analysts can gauge market sentiment and potential price movements by studying detailed order book data, allowing for predictions on short-term price fluctuations.\n- **Risk Management in Derivatives Trading**: Enables traders and risk managers to evaluate exposure and potential price gaps or slippages in futures contracts, critical for managing financial risk effectively.\n- **Algorithmic Trading Optimization**: Developers and quantitative analysts can refine algorithms and automated trading systems by testing them against historical data, ensuring that strategies align with real-world trading scenarios.\n\n### Target Audiences\n- **Futures Traders and Hedgers**: Professionals who actively engage in trading or hedging with futures contracts.\n- **Commodity Trading Advisors (CTAs)**: Advisors who manage commodities and futures trading strategies for their clients.\n- **Financial Risk Managers**: Individuals responsible for managing and mitigating risks associated with futures trading.\n- **Quantitative Analysts and Algorithmic Developers**: Those who create and fine-tune trading algorithms based on detailed, historical order book data.\n\nThe Futures Order Book L2 Snapshots Minute Endpoint is a powerful tool designed to empower futures traders and financial analysts with precise, minute-by-minute data on market conditions. This endpoint's detailed snapshots enable professionals to conduct thorough analyses, optimize trading algorithms, manage risks, and devise effective trading and hedging strategies with confidence. By providing access to historical, high-resolution data, this resource aids in a deeper understanding of market dynamics and enhances strategic decision-making in futures trading. Dive into this data-rich resource to unlock new potentials in your trading strategies and risk management solutions. Start utilizing these insights to stay ahead in the fast-paced and often volatile futures market, ensuring your strategies and decisions are data-driven and robust.","tags":["Futures"],"operationId":"futures_v2_historical_orderbook_l2_snapshots_minute","x-section":"Futures","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v2_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","coinbaseinternational","cryptodotcom","deribit","hyperliquid","kraken","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"depth","in":"query","description":"The number of top bids and asks to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":25000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_ORDERBOOK_L2_SNAPSHOTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v1/latest/open-interest/tick":{"get":{"summary":"Open Interest Instrument Latest Tick","description":"This endpoint provides real-time updates on open interest for selected futures instruments across specified exchanges. Open interest, a key metric in the futures market, indicates the total number of outstanding contracts that have not been settled. By delivering the latest open interest figures along with associated price and volume metrics, this endpoint serves as a vital tool for gauging market sentiment and potential price movements. It offers insights into the level of trading activity and whether money is flowing into or out of futures contracts, which is crucial for making informed trading and investment decisions.","x-extended-description-with-markdown":"This endpoint provides real-time updates on open interest for selected futures instruments across specified exchanges. Open interest, a key metric in the futures market, indicates the total number of outstanding contracts that have not been settled. By delivering the latest open interest figures along with associated price and volume metrics, this endpoint serves as a vital tool for gauging market sentiment and potential price movements. It offers insights into the level of trading activity and whether money is flowing into or out of futures contracts, which is crucial for making informed trading and investment decisions.\n\n### Use Cases\n- **Market Sentiment Analysis**: Traders and analysts use open interest data to interpret market sentiment and predict short-term movements based on increases or decreases in open interest.\n- **Risk Management**: Provides essential information for managing portfolio risk by showing changes in market exposure through open interest levels.\n- **Strategic Entry and Exit**: Helps traders identify potentially lucrative entry and exit points by analyzing trends in open interest alongside price changes.\n- **Derivative Market Research**: Financial researchers analyze open interest data to understand market trends, trading volumes, and price relationships in futures markets.\n\n### Target Audience\n- **Futures Traders**: Professionals actively trading who rely on up-to-the-minute data to guide their trading decisions.\n- **Risk Managers**: Individuals focused on monitoring and mitigating risks associated with position sizes and market volatility.\n- **Financial Analysts** and **Market Researchers**: Analysts needing detailed insights into the futures market for trend analysis and forecasting.\n- **Hedge Fund Managers**: Managers who use futures contracts to hedge against market movements and require real-time data to adjust their strategies promptly.\n\nThis endpoint is designed to support a wide range of financial professionals by providing them with timely and critical data on open interest, enhancing their ability to make strategic decisions based on comprehensive market insights. Whether it’s adjusting trading strategies, managing risk, or conducting detailed market analysis, the Open Interest Instrument Latest Tick Endpoint equips users with the essential data needed to navigate the complexities of the futures markets effectively.","tags":["Futures"],"operationId":"futures_v1_latest_open_interest_tick","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_latest_open_interest","x-endpoint-group-name":"Latest Tick (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["XRP-USD-QUANTO-PERPETUAL","ETH-USD-QUANTO-PERPETUAL","XRP-USDT-VANILLA-PERPETUAL"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/historical/open-interest/days":{"get":{"summary":"Historical OHLC+ (OI) Day","description":"This endpoint provides daily aggregated candlestick data specifically for open interest changes in futures instruments across various exchanges. It details the open, high, low, and close values (OHLC) of open interest fluctuations throughout the day, offering a precise measure of how open interest has evolved over each trading day. This data is crucial for understanding the dynamics of contract engagement and liquidity without the direct influence of price movements, providing a clear picture of market participation and sentiment shifts. The endpoint is a valuable tool for those needing to track and analyze changes in market depth and trader commitment on a daily basis.","x-extended-description-with-markdown":"This endpoint provides daily aggregated candlestick data specifically for open interest changes in futures instruments across various exchanges. It details the open, high, low, and close values (OHLC) of open interest fluctuations throughout the day, offering a precise measure of how open interest has evolved over each trading day. This data is crucial for understanding the dynamics of contract engagement and liquidity without the direct influence of price movements, providing a clear picture of market participation and sentiment shifts. The endpoint is a valuable tool for those needing to track and analyze changes in market depth and trader commitment on a daily basis.\n\n### Use Cases\n- **Open Interest Trend Analysis**: Traders and analysts can examine the day's open interest trends to understand market sentiment and anticipate potential market moves based on trader commitments.\n- **Trading Strategy Development**: By observing daily highs and lows of open interest, traders can develop strategies that align with the most significant shifts in market participation.\n- **Risk Management**: Helps risk managers identify periods of increasing or decreasing open interest, which can signal changes in market risk and liquidity.\n- **Quantitative Analysis**: Quantitative analysts use daily open interest data to build models that predict market behavior based on variations in trader engagement.\n\n### Target Audience\n- **Futures Traders**: Professionals who rely on detailed analysis of market participation trends to inform their trading decisions.\n- **Risk Managers**: Those responsible for assessing market stability and risk based on daily changes in open interest.\n- **Financial Analysts**: Analysts who need to understand the underlying movements in futures markets that are not directly tied to price changes.\n- **Quantitative Researchers**: Academics and industry professionals who incorporate market depth and engagement metrics into their research and models.\n\nThe Futures Historical OHLC+ Open Interest Day Endpoint is crucial for professionals in the futures market seeking to gain insights into daily changes in open interest. Providing OHLC data specifically for open interest allows users to understand market dynamics that underpin trading volume and price action. This endpoint supports a variety of professional activities from strategic trading to risk management and academic research, offering a detailed and focused view of how open interest metrics evolve throughout the trading day.","tags":["Futures"],"operationId":"futures_v1_historical_open_interest_days","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/open-interest/hours":{"get":{"summary":"Historical OHLC+ (OI) Hour","description":"This endpoint delivers hourly aggregated candlestick data that focuses specifically on open interest changes for futures instruments across various exchanges. It captures the open, high, low, and close values (OHLC) of open interest for each hour, offering insights into the hourly fluctuations of market participation. This detailed view of open interest provides traders and analysts with a deeper understanding of trader commitments and market depth within short time frames, crucial for responding to intraday market dynamics.","x-extended-description-with-markdown":"This endpoint delivers hourly aggregated candlestick data that focuses specifically on open interest changes for futures instruments across various exchanges. It captures the open, high, low, and close values (OHLC) of open interest for each hour, offering insights into the hourly fluctuations of market participation. This detailed view of open interest provides traders and analysts with a deeper understanding of trader commitments and market depth within short time frames, crucial for responding to intraday market dynamics.\n\n### Use Cases\n- **Intraday Open Interest Analysis**: Enables traders to track hourly changes in open interest to assess short-term market sentiment and potential shifts in trading volume.\n- **Strategy Optimization for Day Traders**: Traders can refine intraday trading strategies by analyzing when open interest peaks or troughs, indicating potential increases in liquidity or trading activity.\n- **Risk Assessment**: Provides risk managers with timely data on open interest variations, which can be essential for managing volatility and making quick adjustments to hedge strategies.\n- **Quantitative Model Development**: Quantitative analysts can use this detailed, hourly open interest data to enhance predictive models that consider market depth as a factor in trading decisions.\n\n### Target Audience\n- **Day Traders and Intraday Futures Traders**: Professionals who need to understand and react to market conditions that change within hours or even minutes.\n- **Risk Managers**: Those tasked with overseeing trading risks and who require frequent updates on market conditions to effectively manage exposure.\n- **Quantitative Analysts**: Analysts who integrate complex data feeds into algorithmic trading models, particularly those that automate trading decisions based on short-term market signals.\n- **Financial Market Researchers**: Academics and researchers who study market behaviors, specifically looking at how open interest impacts market liquidity and price stability on an hourly basis.\n\nThe Futures Historical OHLC+ Open Interest Hour Endpoint is indispensable for market participants requiring granular data to make informed decisions in the rapidly changing futures market. By providing hourly OHLC data for open interest, this endpoint allows for a nuanced analysis of how trader commitments evolve throughout the trading day, supporting activities ranging from tactical trading to comprehensive market studies. Whether for immediate trading actions, risk management, algorithm development, or academic research, this tool delivers the critical insights necessary to navigate the complexities of hourly futures market movements effectively.","tags":["Futures"],"operationId":"futures_v1_historical_open_interest_hours","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/open-interest/minutes":{"get":{"summary":"Historical OHLC+ (OI) Minute","description":"This endpoint delivers minute-by-minute aggregated candlestick data focused on open interest changes for futures instruments across various exchanges. It provides detailed OHLC (open, high, low, close) values of open interest fluctuations each minute, offering an intensive look into the micro-movements of market participation. This precise and granular data is crucial for understanding the dynamics of open interest within extremely short intervals, enabling traders and analysts to respond to immediate market changes effectively.","x-extended-description-with-markdown":"This endpoint delivers minute-by-minute aggregated candlestick data focused on open interest changes for futures instruments across various exchanges. It provides detailed OHLC (open, high, low, close) values of open interest fluctuations each minute, offering an intensive look into the micro-movements of market participation. This precise and granular data is crucial for understanding the dynamics of open interest within extremely short intervals, enabling traders and analysts to respond to immediate market changes effectively.\n\n### Use Cases\n- **High-Frequency Trading Analysis**: High-frequency traders can use minute-level open interest data to enhance their trading algorithms, capitalizing on short-term liquidity and volatility patterns.\n- **Micro Market Sentiment Tracking**: Enables traders to monitor shifts in market sentiment reflected by rapid changes in open interest, crucial for minute-to-minute trading decisions.\n- **Risk Management**: Provides essential data for risk managers who need to monitor and respond to quick fluctuations in market conditions and trader engagement.\n- **Quantitative and Algorithmic Trading Development**: Quantitative analysts can incorporate minute-by-minute open interest data into models to predict short-term market movements and refine algorithmic trading strategies.\n\n### Target Audience\n- **High-Frequency Traders**: Professionals engaged in rapid trading who rely on up-to-the-minute data to adjust their strategies within moments.\n- **Quantitative Analysts**: Analysts who develop and test models that require high-resolution market data to forecast short-term market behaviors.\n- **Risk Managers**: Those tasked with managing short-term trading risks who need immediate data to quickly adapt their risk mitigation strategies.\n- **Market Researchers**: Financial analysts and researchers who study intraday market dynamics and need detailed data on market participation.\n\nThe Futures Historical OHLCV+ Open Interest Minute Endpoint is an essential resource for anyone involved in the fast-paced environment of futures trading, where understanding minute-level dynamics can significantly influence trading decisions. This endpoint facilitates a comprehensive view of market conditions, enabling detailed analysis and strategic decision-making based on the most granular data available. Whether for trading, compliance, risk management, or research, this tool provides the critical insights necessary to navigate the complexities of minute-by-minute futures market movements effectively.","tags":["Futures"],"operationId":"futures_v1_historical_open_interest_minutes","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v2/historical/open-interest-messages/hour":{"get":{"summary":"Updates (OI) Full Hour","description":"The Futures Message Updates Open Interest Full Hour endpoint offers access to every update message related to open interest provided by the exchange for a specific hour. This endpoint captures all changes and fluctuations in open interest for futures instruments, as reported in real-time by the exchanges. Each message details adjustments in the total number of outstanding futures contracts that have not been settled, reflecting changes in market depth and trader commitments within that hour. This granular data is essential for users who need to track open interest movements closely to analyze market sentiment, validate trading strategies, or monitor compliance.","x-extended-description-with-markdown":"The Futures Message Updates Open Interest Full Hour endpoint offers access to every update message related to open interest provided by the exchange for a specific hour. This endpoint captures all changes and fluctuations in open interest for futures instruments, as reported in real-time by the exchanges. Each message details adjustments in the total number of outstanding futures contracts that have not been settled, reflecting changes in market depth and trader commitments within that hour. This granular data is essential for users who need to track open interest movements closely to analyze market sentiment, validate trading strategies, or monitor compliance.\n\n### Use Cases\n- **Real-Time Compliance Monitoring**: Helps compliance officers track open interest changes in real time to ensure trading activities meet regulatory standards.\n- **Detailed Market Analysis**: Enables traders and analysts to receive detailed, timestamped updates on open interest, providing insights into market sentiment and potential shifts in trading volume within specific timeframes.\n- **Strategy Adjustment and Backtesting**: Traders can adjust and backtest strategies based on precise, hourly fluctuations in open interest, enhancing their approach to market entry and exit.\n- **Risk Management**: Offers risk managers immediate data on open interest changes, crucial for assessing and responding to market risks as they develop throughout the trading day.\n\n### Target Audience\n- **Futures Traders**: Professionals who rely on up-to-the-minute data on open interest for informed trading decisions.\n- **Risk Managers**: Those who monitor open interest as part of their risk assessment strategy to identify potential market vulnerabilities.\n- **Regulatory Compliance Officers**: Compliance professionals who require detailed records of open interest changes to ensure adherence to market regulations.\n- **Market Analysts and Quantitative Researchers**: Analysts and researchers who analyze open interest data to uncover market trends and test trading models.\n\nThe Futures Message Updates Open Interest Full Hour endpoin is a vital tool for financial professionals involved in futures trading, offering a detailed record of all open interest updates provided by exchanges within any given hour. This high level of detail supports effective market analysis, risk management, compliance monitoring, and strategy development, ensuring that users can respond quickly to changes and maintain a competitive edge in the dynamic futures market.","tags":["Futures"],"operationId":"futures_v2_historical_open_interest_messages_hour","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_open_interest_message","x-endpoint-group-name":"Updates (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"kraken"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the open interest updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all open interest updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1667296800},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid open interest updates from the response. Invalid open interest updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid open interest updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any open interest updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/open-interest-messages":{"get":{"summary":"Updates (OI) by Timestamp","description":"The Futures Message Updates Open Interest by Timestamp endpoint provides a detailed stream of open interest update messages for futures instruments from a specified timestamp onwards. Each message captures real-time adjustments to open interest, reflecting changes in the total number of outstanding futures contracts that have not been settled. This endpoint is invaluable for users requiring precise and timestamped data on open interest to analyze shifts in market depth, trader commitments, and sentiment over specific periods. It supports a range of financial activities, from strategic trading and risk management to regulatory compliance and market research, by offering direct insights into the dynamics of open interest as they unfold.","x-extended-description-with-markdown":"The Futures Message Updates Open Interest by Timestamp endpoint provides a detailed stream of open interest update messages for futures instruments from a specified timestamp onwards. Each message captures real-time adjustments to open interest, reflecting changes in the total number of outstanding futures contracts that have not been settled. This endpoint is invaluable for users requiring precise and timestamped data on open interest to analyze shifts in market depth, trader commitments, and sentiment over specific periods. It supports a range of financial activities, from strategic trading and risk management to regulatory compliance and market research, by offering direct insights into the dynamics of open interest as they unfold.\n\n### Use Cases\n- **Strategic Trading Decisions**: Traders can utilize real-time updates on open interest to make informed decisions, adjusting their strategies based on the latest market dynamics.\n- **Comprehensive Market Analysis**: Provides analysts with precise, timestamped data to track and understand the fluctuations in open interest, aiding in the assessment of market sentiment and liquidity.\n- **Risk Management**: Helps risk managers monitor changes in market exposure and adjust their strategies swiftly to mitigate associated risks.\n- **Regulatory Compliance and Auditing**: Essential for compliance officers who need to ensure that all trading activities involving futures contracts adhere to industry regulations, using exact timestamps for detailed auditing.\n\n### Target Audience\n- **Futures Traders**: Professionals who depend on detailed and up-to-date information about open interest for optimizing their trading tactics.\n- **Market Analysts**: Analysts looking for granular data to analyze market conditions and validate their market predictions.\n- **Risk Managers**: Those responsible for monitoring and managing the risks associated with volatile futures markets.\n- **Regulatory Compliance Officers**: Compliance professionals who require accurate, timestamped records of open interest for reporting and regulatory checks.\n\n### Data Handling Notes:\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_OPEN_INTEREST_UPDATE_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all updates returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last update in the after_ts parameter and the CCSEQ of that update in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any updates, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Updates**: To maintain data accuracy, there are instances where updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all updates. For comprehensive data, we recommend not skipping invalid updates.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest updates, it is not efficient for backfilling historical data or catching up on multiple days of missed updates. For backfilling, use the [Futures Open Interest Updates Full Hour Endpoint](/documentation/data-api/futures_v2_historical_open_interest_messages_hour) instead. This endpoint stores updates in hourly batches, which can contain up to 5 million updates per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThe Futures Message Updates Open Interest by Timestamp endpoint is a critical tool for anyone involved in the futures markets requiring access to real-time, detailed updates on open interest from a specific point in time. This endpoint delivers the necessary granularity for rigorous analysis, strategic decision-making, and compliance, ensuring that users can act on the most current data available and maintain compliance with market standards. Whether for trading, risk management, compliance, or research, this tool provides the essential insights needed to navigate the complexities of the futures markets effectively.","tags":["Futures"],"operationId":"futures_v2_historical_open_interest_messages","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_open_interest_message","x-endpoint-group-name":"Updates (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"kraken"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest open interest message in the response","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1666887200},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of open interest messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid open interest updates from the response. Invalid open interest updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid open interest updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any open interest updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v1/latest/funding-rate/tick":{"get":{"summary":"Funding Rate Instrument Latest Tick","description":"This endpoint delivers real-time updates on funding rates for various cryptocurrency futures instruments across selected exchanges. Funding rates are critical indicators in perpetual futures contracts, reflecting the periodic payments made between buyers and sellers which can indicate market sentiment and leverage levels. By providing up-to-the-minute funding rate information alongside related price details, this endpoint is an essential tool for traders and analysts monitoring the health and dynamics of the crypto derivatives market. It enables users to react quickly to changes in funding rates, which are pivotal for assessing the cost of holding positions and predicting market movements.","x-extended-description-with-markdown":"This endpoint delivers real-time updates on funding rates for various cryptocurrency futures instruments across selected exchanges. Funding rates are critical indicators in perpetual futures contracts, reflecting the periodic payments made between buyers and sellers which can indicate market sentiment and leverage levels. By providing up-to-the-minute funding rate information alongside related price details, this endpoint is an essential tool for traders and analysts monitoring the health and dynamics of the crypto derivatives market. It enables users to react quickly to changes in funding rates, which are pivotal for assessing the cost of holding positions and predicting market movements.\n\n### Use Cases\n- **Market Sentiment Tracking**: Enables traders to gauge the short-term market sentiment by analyzing whether funding rates are favoring long or short positions.\n- **Risk Management**: Critical for managing the risk associated with the cost of maintaining positions in perpetual futures, especially in volatile market conditions.\n- **Trading Strategy Adjustment**: Traders can adjust their strategies based on real-time funding rate changes to optimize their positions for expected market shifts.\n- **Arbitrage Opportunities**: Identifies potential arbitrage opportunities by comparing funding rates across different exchanges, allowing traders to capitalize on discrepancies.\n\n### Target Audience\n- **Cryptocurrency Traders**: Individuals actively trading in crypto futures who require immediate updates on funding rates to make informed decisions.\n- **Financial Analysts**: Analysts who study cryptocurrency markets and need detailed information on derivative instruments for comprehensive analysis.\n- **Risk Managers**: Professionals monitoring exposure and managing the financial risks associated with perpetual futures contracts.\n- **Quantitative Analysts**: Analysts who develop complex models and trading algorithms that incorporate funding rates as a variable.\n\nThis endpoint is designed to empower professionals involved in cryptocurrency futures trading by providing them with essential, real-time data on funding rates. Access to such timely information helps in making strategic trading decisions, managing risks effectively, and identifying market opportunities promptly. Whether for immediate trading adjustments, detailed market analysis, or risk management, the Funding Rate Instrument Latest Tick Endpoint is a crucial resource for staying ahead in the fast-paced world of cryptocurrency derivatives.","tags":["Futures"],"operationId":"futures_v1_latest_funding_rate_tick","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_latest_funding_rate","x-endpoint-group-name":"Latest Tick (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTC-USD-INVERSE-PERPETUAL","ETH-USD-INVERSE-PERPETUAL"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/historical/funding-rate/days":{"get":{"summary":"Historical OHLC+ (FR) Day","description":"This endpoint provides daily aggregated candlestick data for funding rates associated with futures instruments on various exchanges. It details the open, high, low, close prices (OHLC) of funding rate changes throughout the day, crucial for analyzing the dynamics of funding rate fluctuations over time. Funding rates, critical components of perpetual futures contracts, reflect the periodic payments exchanged between buyers and sellers, indicating market leverage and sentiment. Understanding these daily fluctuations is vital for traders and analysts focusing on the economic impacts of funding rates in the futures market.","x-extended-description-with-markdown":"This endpoint provides daily aggregated candlestick data for funding rates associated with futures instruments on various exchanges. It details the open, high, low, close prices (OHLC) of funding rate changes throughout the day, crucial for analyzing the dynamics of funding rate fluctuations over time. Funding rates, critical components of perpetual futures contracts, reflect the periodic payments exchanged between buyers and sellers, indicating market leverage and sentiment. Understanding these daily fluctuations is vital for traders and analysts focusing on the economic impacts of funding rates in the futures market.\n\n### Use Cases\n- **Funding Rate Trend Analysis**: Enables traders to track daily trends and patterns in funding rates, aiding in predictions of future movements and guiding strategic trading decisions.\n- **Strategic Trading and Arbitrage**: By observing the highs and lows of funding rates, traders can identify optimal times for entry and exit, as well as arbitrage opportunities across different markets.\n- **Risk Management**: Offers insights into daily variations in funding rates, helping traders and risk managers tailor their strategies to mitigate risks associated with these fluctuations.\n- **Quantitative Analysis**: Quantitative traders can integrate historical data on funding rate volatility into their models to enhance predictions and algorithmic trading strategies.\n\n### Target Audience\n- **Perpetual Futures Traders**: Traders engaged in perpetual futures who require an in-depth understanding of how funding rate changes affect their strategies.\n- **Quantitative Analysts**: Professionals who use historical data on funding rate changes to improve market prediction models.\n- **Risk Managers**: Individuals focused on managing the financial risks that arise from the volatility of funding rates in perpetual futures contracts.\n- **Financial Market Researchers**: Analysts studying the effects of funding rates on market stability and trader behavior.\n\nThe Futures Historical OHLC+ Funding Rate Day Endpoint is essential for those needing detailed, analytical views of funding rate movements within the futures market. By providing daily OHLC data without volume for funding rates, this endpoint equips users with critical insights needed to effectively navigate the complexities of perpetual futures, optimize trading strategies, manage risks, and conduct comprehensive market research. This resource is invaluable for anyone looking to enhance their understanding of funding rate dynamics and its impact on market movements.","tags":["Futures"],"operationId":"futures_v1_historical_funding_rate_days","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_funding_rate","x-endpoint-group-name":"Historical OHLC+ (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/funding-rate/hours":{"get":{"summary":"Historical OHLC+ (FR) Hour","description":"This endpoint delivers hourly aggregated candlestick data for funding rates related to futures instruments on various exchanges. It details the open, high, low, and close prices (OHLC) of funding rate changes within each hour, essential for understanding the intricacies of funding rate fluctuations on a short-term basis. Funding rates are key indicators in perpetual futures contracts, reflecting the periodic payments exchanged between buyers and sellers, which indicate underlying market leverage and sentiment. This endpoint is invaluable for traders and analysts who need to closely monitor and respond to fast-changing market conditions dictated by funding rates.","x-extended-description-with-markdown":"This endpoint delivers hourly aggregated candlestick data for funding rates related to futures instruments on various exchanges. It details the open, high, low, and close prices (OHLC) of funding rate changes within each hour, essential for understanding the intricacies of funding rate fluctuations on a short-term basis. Funding rates are key indicators in perpetual futures contracts, reflecting the periodic payments exchanged between buyers and sellers, which indicate underlying market leverage and sentiment. This endpoint is invaluable for traders and analysts who need to closely monitor and respond to fast-changing market conditions dictated by funding rates.\n\n### Use Cases\n- **Intraday Funding Rate Monitoring**: Traders can closely monitor funding rate fluctuations within the day to make immediate adjustments to their trading positions.\n- **Short-term Trading Strategy Development**: By observing hourly highs and lows of funding rates, traders can devise short-term strategies that capitalize on expected movements influenced by these rates.\n- **Risk Management Enhancement**: Provides detailed insights into the hourly volatility of funding rates, helping traders and risk managers implement more effective risk control measures.\n- **Quantitative and Algorithmic Trading**: Allows quantitative analysts to refine algorithms by incorporating hourly funding rate changes, optimizing automated trading strategies in line with current market dynamics.\n\n### Target Audience\n- **Day Traders and Intraday Traders**: Professionals who trade on an hourly basis and need precise, up-to-the-hour data to inform their trading decisions.\n- **Quantitative Analysts**: Analysts who develop and fine-tune trading models that incorporate real-time changes in funding rates.\n- **Risk Managers**: Those who need to understand and react quickly to the risks associated with rapid fluctuations in funding rates.\n- **Market Researchers**: Financial analysts who study hourly market trends and their impacts on trading behavior and market stability.\n\nThe Futures Historical OHLC+ Funding Rate Hour Endpoint is critical for market participants who operate in the fast-paced environment of futures trading, where hourly insights into funding rate changes can significantly influence trading decisions. By providing an hourly breakdown of OHLC data for funding rates, this endpoint supports effective strategy formulation, risk management, and algorithmic trading, enabling users to act swiftly and with informed precision in dynamic market conditions. Whether for trading, compliance, risk management, or research, this tool provides the necessary insights to navigate the complexities of hourly futures market movements effectively.","tags":["Futures"],"operationId":"futures_v1_historical_funding_rate_hours","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_funding_rate","x-endpoint-group-name":"Historical OHLC+ (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/funding-rate/minutes":{"get":{"summary":"Historical OHLC+ (FR) Minute","description":"This endpoint provides minute-by-minute aggregated candlestick data for funding rates associated with futures instruments across various exchanges. It captures the open, high, low, and close prices (OHLC) of funding rate changes every minute, offering traders and analysts highly granular insights into the rapid fluctuations of funding rates throughout the trading day. Funding rates, which reflect the periodic payments exchanged between buyers and sellers in perpetual futures contracts, serve as crucial indicators of market leverage and sentiment. This level of detail is particularly valuable for understanding the immediate market dynamics and for participants involved in high-frequency trading.","x-extended-description-with-markdown":"This endpoint provides minute-by-minute aggregated candlestick data for funding rates associated with futures instruments across various exchanges. It captures the open, high, low, and close prices (OHLC) of funding rate changes every minute, offering traders and analysts highly granular insights into the rapid fluctuations of funding rates throughout the trading day. Funding rates, which reflect the periodic payments exchanged between buyers and sellers in perpetual futures contracts, serve as crucial indicators of market leverage and sentiment. This level of detail is particularly valuable for understanding the immediate market dynamics and for participants involved in high-frequency trading.\n\n### Use Cases\n- **High-Frequency Trading Strategy Optimization**: Traders can utilize minute-level funding rate data to enhance the responsiveness and profitability of their high-frequency trading algorithms.\n- **Immediate Risk Assessment**: Enables traders and risk managers to quickly identify and respond to sudden changes in market conditions as reflected by funding rate adjustments.\n- **Intraday Market Sentiment Analysis**: Analysts can decipher short-term market sentiment and make predictions based on very short-term changes in funding rates.\n- **Algorithmic Trading Development**: Quantitative traders integrate minute-by-minute funding rate data into their trading models to fine-tune entry and exit points, improving the precision of automated strategies.\n\n### Target Audience\n- **High-Frequency Traders**: Professionals engaged in rapid trading who require immediate data on funding rates to adjust their strategies within minutes.\n- **Quantitative Analysts**: Developers and analysts who build complex models that factor in minute-level changes in market data.\n- **Risk Managers**: Those who monitor intraday risks and need to quickly adjust hedge positions based on immediate funding rate movements.\n- **Financial Technologists and System Developers**: Professionals developing advanced trading platforms and analytics tools that incorporate real-time data feeds for enhanced decision-making capabilities.\n\nThe Futures Historical OHLC+ Funding Rate Minute Endpoint is an essential resource for anyone requiring up-to-the-minute data to effectively compete in the fast-paced environment of futures trading. Providing detailed, minute-by-minute OHLC data on funding rates, this endpoint supports a wide range of activities from risk management to algorithmic trading, enabling users to make informed decisions based on the latest market conditions. Whether for trading, risk management, or developing cutting-edge trading technologies, this tool delivers the critical insights necessary to navigate the complexities of the futures markets with precision and agility.","tags":["Futures"],"operationId":"futures_v1_historical_funding_rate_minutes","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_funding_rate","x-endpoint-group-name":"Historical OHLC+ (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v2/historical/funding-rate-messages/hour":{"get":{"summary":"Updates (FR) Full Hour","description":"The Futures Message Updates Funding Rate Full Hour endpoint offers tick-level funding rate data, capturing every available update for a selected futures instrument on a chosen exchange during a specified hour. This endpoint is specifically tailored for users who need to catch up on funding rate changes within a specific timeframe, providing a complete and detailed record of all funding rate updates issued by the exchange in that hour. Funding rates, which are periodic payments exchanged between buyers and sellers of perpetual futures contracts, are crucial for understanding market leverage and sentiment. This data is invaluable for traders, analysts, and risk managers who need to analyze the impacts of these rates on market dynamics.","x-extended-description-with-markdown":"The Futures Message Updates Funding Rate Full Hour endpoint offers tick-level funding rate data, capturing every available update for a selected futures instrument on a chosen exchange during a specified hour. This endpoint is specifically tailored for users who need to catch up on funding rate changes within a specific timeframe, providing a complete and detailed record of all funding rate updates issued by the exchange in that hour. Funding rates, which are periodic payments exchanged between buyers and sellers of perpetual futures contracts, are crucial for understanding market leverage and sentiment. This data is invaluable for traders, analysts, and risk managers who need to analyze the impacts of these rates on market dynamics.\n\n### Use Cases\n- **Intraday Trading Strategy Adjustment**: Traders can use the detailed, hourly updates to fine-tune their trading strategies based on the latest funding rate changes, enhancing responsiveness to market conditions.\n- **Risk Management**: Provides risk managers with precise, time-specific data to assess and mitigate risks associated with funding rate volatility.\n- **Market Analysis**: Analysts can perform detailed analyses of how funding rates influence market movements within the hour, helping to predict future market trends based on past funding rate behaviors.\n- **Algorithmic Trading Development**: Quantitative developers can use historical funding rate data to test and improve algorithms that are sensitive to funding rate adjustments, ensuring their strategies are effective under real market conditions.\n\n### Target Audience\n- **Futures Traders**: Professionals who actively engage in trading perpetual futures and require up-to-date information on funding rates to make informed decisions.\n- **Risk Managers**: Individuals tasked with monitoring and managing the financial risks associated with rapid changes in funding rates.\n- **Quantitative Analysts**: Analysts who develop and refine trading algorithms based on precise, historical funding rate data.\n- **Financial Market Researchers**: Academics and market researchers studying the impact of funding rates on trading behavior and market dynamics.\n\nThe Futures Message Updates Funding Rate Full Hour endpoint is an essential resource for financial professionals who need a comprehensive view of funding rate fluctuations within a specific hour. By providing every funding rate update within that timeframe, this endpoint ensures that users have the detailed information necessary for a wide range of financial activities, from trading strategy formulation to risk management and algorithmic trading development. Whether for catching up on missed data or conducting thorough market analyses, this tool delivers the critical insights needed to navigate the complexities of futures markets effectively.","tags":["Futures"],"operationId":"futures_v2_historical_funding_rate_messages_hour","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_funding_rate_message","x-endpoint-group-name":"Updates (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the funding rate updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all funding rate updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1647263456},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid funding rate updates from the response. Invalid funding rate updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid funding rate updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any funding rate updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/funding-rate-messages":{"get":{"summary":"Updates (FR) by Timestamp","description":"The Futures Message Updates Funding Rate by Timestamp endpoint provides tick-level funding rate data for perpetual futures instruments from a specified timestamp onwards. This endpoint delivers every available update on funding rates for a selected instrument on a chosen exchange, starting from a given timestamp. Funding rates, critical in perpetual futures contracts, indicate the periodic payments exchanged between buyers and sellers and are essential indicators of market sentiment and leverage. This data is invaluable for users who need detailed insights into funding rate changes over time, enabling them to make informed decisions in trading, risk management, and market analysis.","x-extended-description-with-markdown":"The Futures Message Updates Funding Rate by Timestamp endpoint provides tick-level funding rate data for perpetual futures instruments from a specified timestamp onwards. This endpoint delivers every available update on funding rates for a selected instrument on a chosen exchange, starting from a given timestamp. Funding rates, critical in perpetual futures contracts, indicate the periodic payments exchanged between buyers and sellers and are essential indicators of market sentiment and leverage. This data is invaluable for users who need detailed insights into funding rate changes over time, enabling them to make informed decisions in trading, risk management, and market analysis.\n\n### Use Cases\n- **Real-Time Strategy Adjustment**: Traders can use up-to-the-minute funding rate data to adjust their trading strategies in real-time, responding quickly to changes that could affect the profitability of their positions.\n- **Historical Analysis and Backtesting**: Provides quantitative analysts and traders with historical funding rate data from specific starting points, crucial for backtesting trading models and strategies against historical conditions.\n- **Risk Management**: Helps risk managers assess and respond to the risks associated with funding rate fluctuations, using precise data to mitigate potential impacts on trading operations.\n- **Market Research**: Enables financial researchers to study the effects of funding rates on market dynamics, particularly in the context of perpetual futures, providing a deeper understanding of how these rates influence market behavior over time.\n\n### Target Audience\n- **Perpetual Futures Traders**: Professionals who trade perpetual futures contracts and rely on detailed, timestamp-specific funding rate updates to guide their trading decisions.\n- **Quantitative Analysts**: Analysts who require granular funding rate data for developing and refining predictive models and trading algorithms.\n- **Risk Managers**: Individuals tasked with managing the financial risks associated with funding rate volatility in perpetual futures markets.\n- **Academic Researchers**: Academics and financial market researchers studying the impact of funding rates on long-term market trends and trading strategies.\n\n### Data Handling Notes:\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_FUNDING_RATE_UPDATE_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all updates returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last update in the after_ts parameter and the CCSEQ of that update in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any updates, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Updates**: To maintain data accuracy, there are instances where updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all updates. For comprehensive data, we recommend not skipping invalid updates.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest updates, it is not efficient for backfilling historical data or catching up on multiple days of missed updates. For backfilling, use the [Funding Rates Updates Full Hour Endpoint](/documentation/data-api/futures_v2_historical_funding_rate_messages_hour) instead. This endpoint stores updates in hourly batches, which can contain up to 5 million updates per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThe Futures Message Updates Funding Rate by Timestamp endpoint is a crucial tool for anyone involved in trading or analyzing perpetual futures markets. By providing detailed funding rate updates from a designated timestamp, this endpoint ensures that financial professionals have access to the precise data needed for a wide range of activities, including real-time trading adjustments, comprehensive risk management, and in-depth market research. Whether for immediate trading needs or long-term strategic planning, this tool delivers the critical insights required to effectively navigate the complexities of futures markets.","tags":["Futures"],"operationId":"futures_v2_historical_funding_rate_messages","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_funding_rate_message","x-endpoint-group-name":"Updates (FR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bitmex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-INVERSE-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest funding rate message in the response","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1647285056},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of funding rate messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid funding rate updates from the response. Invalid funding rate updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid funding rate updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any funding rate updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/settled-funding-rate-messages":{"get":{"summary":"Updates (SFR) by Timestamp","description":"The Futures Message Updates Settled Funding Rate by Timestamp endpoint provides tick-level settled funding rate data for perpetual futures instruments from a specified timestamp onwards. This endpoint delivers every available settled funding rate for a selected instrument on a chosen exchange, starting from a given timestamp. Settled funding rates represent the actual funding payments that were applied at each settlement interval, as opposed to predicted or indicative rates. This data is invaluable for users who need detailed insights into historical funding rate settlements over time, enabling them to make informed decisions in trading, risk management, and market analysis.","x-extended-description-with-markdown":"The Futures Message Updates Settled Funding Rate by Timestamp endpoint provides tick-level settled funding rate data for perpetual futures instruments from a specified timestamp onwards. This endpoint delivers every available settled funding rate for a selected instrument on a chosen exchange, starting from a given timestamp. Settled funding rates represent the actual funding payments that were applied at each settlement interval, as opposed to predicted or indicative rates. This data is invaluable for users who need detailed insights into historical funding rate settlements over time, enabling them to make informed decisions in trading, risk management, and market analysis.\n\n### Use Cases\n- **Real-Time Strategy Adjustment**: Traders can use up-to-the-minute settled funding rate data to adjust their trading strategies in real-time, responding quickly to changes that could affect the profitability of their positions.\n- **Historical Analysis and Backtesting**: Provides quantitative analysts and traders with historical settled funding rate data from specific starting points, crucial for backtesting trading models and strategies against historical conditions.\n- **Risk Management**: Helps risk managers assess and respond to the risks associated with funding rate fluctuations, using precise data to mitigate potential impacts on trading operations.\n- **Market Research**: Enables financial researchers to study the effects of settled funding rates on market dynamics, particularly in the context of perpetual futures, providing a deeper understanding of how these rates influence market behavior over time.\n\n### Target Audience\n- **Perpetual Futures Traders**: Professionals who trade perpetual futures contracts and rely on detailed, timestamp-specific settled funding rate updates to guide their trading decisions.\n- **Quantitative Analysts**: Analysts who require granular settled funding rate data for developing and refining predictive models and trading algorithms.\n- **Risk Managers**: Individuals tasked with managing the financial risks associated with funding rate volatility in perpetual futures markets.\n- **Academic Researchers**: Academics and financial market researchers studying the impact of funding rates on long-term market trends and trading strategies.\n\n### Data Handling Notes:\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_SETTLED_FUNDING_RATE_UPDATE_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of settled funding rate data from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all updates returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last update in the after_ts parameter and the CCSEQ of that update in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any updates, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Updates**: To maintain data accuracy, there are instances where updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all updates. For comprehensive data, we recommend not skipping invalid updates.\n\nThe Futures Message Updates Settled Funding Rate by Timestamp endpoint is a crucial tool for anyone involved in trading or analyzing perpetual futures markets. By providing detailed settled funding rate updates from a designated timestamp, this endpoint ensures that financial professionals have access to the precise data needed for a wide range of activities, including real-time trading adjustments, comprehensive risk management, and in-depth market research.","tags":["Futures"],"operationId":"futures_v2_historical_settled_funding_rate_messages","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_settled_funding_rate_message","x-endpoint-group-name":"Updates (SFR)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest settled funding rate message in the response","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1647285056},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of settled funding rate messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid settled funding rate updates from the response. Invalid settled funding rate updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid settled funding rate updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid settled funding rate updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any settled funding rate updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SETTLED_FUNDING_RATE_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v1/latest/liquidation/tick":{"get":{"summary":"Liquidation Instrument Latest Tick","description":"This endpoint delivers real-time updates on liquidations for various cryptocurrency futures instruments across selected exchanges. Liquidations are critical events in derivatives trading, indicating forced position closures due to insufficient margin. By providing up-to-the-minute liquidation information, this endpoint is essential for traders and analysts monitoring risk and volatility in the crypto derivatives market.","x-extended-description-with-markdown":"This endpoint delivers real-time updates on liquidations for various cryptocurrency futures instruments across selected exchanges. Liquidations are critical events in derivatives trading, indicating forced position closures due to insufficient margin. By providing up-to-the-minute liquidation information, this endpoint is essential for traders and analysts monitoring risk and volatility in the crypto derivatives market.\n\n### Use Cases\n- **Risk Monitoring**: Track liquidation events to assess market stress and systemic risk.\n- **Market Sentiment**: Gauge aggressive moves and forced liquidations to understand market sentiment.\n- **Strategy Adjustment**: React quickly to liquidation spikes to adjust trading strategies.\n- **Volatility Analysis**: Use liquidation data as a volatility indicator.\n\n### Target Audience\n- **Traders**: Needing real-time liquidation data for risk management.\n- **Analysts**: Studying market structure and stress events.\n- **Risk Managers**: Monitoring forced position closures.\n- **Quantitative Researchers**: Incorporating liquidation events into models.\n\nThis endpoint empowers professionals with essential, real-time data on liquidations, supporting strategic trading, risk management, and market analysis.","tags":["Futures"],"operationId":"futures_v1_latest_liquidation_tick","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_latest_liquidation","x-endpoint-group-name":"Latest Tick (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTC-USDT-VANILLA-PERPETUAL","ETH-USDT-VANILLA-PERPETUAL"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/historical/liquidation/days":{"get":{"summary":"Historical OHLC+ (LIQ) Day","description":"This endpoint provides daily aggregated candlestick data for liquidation events associated with futures instruments on various exchanges. It details the open, high, low, close values (OHLC) of liquidation activity throughout the day, crucial for analyzing the dynamics of forced position closures over time.","x-extended-description-with-markdown":"This endpoint provides daily aggregated candlestick data for liquidation events associated with futures instruments on various exchanges. It details the open, high, low, close values (OHLC) of liquidation activity throughout the day, crucial for analyzing the dynamics of forced position closures over time.\n\n### Use Cases\n- **Trend Analysis**: Track daily liquidation trends and patterns.\n- **Risk Management**: Identify periods of high liquidation activity.\n- **Market Research**: Analyze the impact of liquidations on price and volatility.\n\n### Target Audience\n- **Traders**: Monitoring liquidation risk.\n- **Analysts**: Studying market stress.\n- **Risk Managers**: Assessing systemic risk.\n\nThis endpoint is essential for those needing detailed, analytical views of liquidation events within the futures market.","tags":["Futures"],"operationId":"futures_v1_historical_liquidation_days","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_liquidation","x-endpoint-group-name":"Historical OHLC+ (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE","VWAP","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/liquidation/hours":{"get":{"summary":"Historical OHLC+ (LIQ) Hour","description":"This endpoint delivers hourly aggregated candlestick data for liquidation events related to futures instruments on various exchanges.","x-extended-description-with-markdown":"This endpoint delivers hourly aggregated candlestick data for liquidation events related to futures instruments on various exchanges.\n\n### Use Cases\n- **Intraday Monitoring**: Track hourly liquidation spikes.\n- **Short-term Risk Management**: Respond to rapid liquidation events.\n\n### Target Audience\n- **Day Traders**\n- **Risk Managers**\n- **Market Analysts**\n\nThis endpoint is critical for market participants who operate in the fast-paced environment of futures trading.","tags":["Futures"],"operationId":"futures_v1_historical_liquidation_hours","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_liquidation","x-endpoint-group-name":"Historical OHLC+ (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v1/historical/liquidation/minutes":{"get":{"summary":"Historical OHLC+ (LIQ) Minute","description":"This endpoint provides minute-by-minute aggregated candlestick data for liquidation events associated with futures instruments across various exchanges.","x-extended-description-with-markdown":"This endpoint provides minute-by-minute aggregated candlestick data for liquidation events associated with futures instruments across various exchanges.\n\n### Use Cases\n- **High-Frequency Trading**: Use minute-level liquidation data for rapid strategy adjustment.\n- **Immediate Risk Assessment**: Respond to sudden liquidation events.\n\n### Target Audience\n- **High-Frequency Traders**\n- **Risk Managers**\n- **Quantitative Analysts**\n\nThis endpoint is essential for anyone requiring up-to-the-minute liquidation data to effectively compete in the fast-paced environment of futures trading.","tags":["Futures"],"operationId":"futures_v1_historical_liquidation_minutes","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_liquidation","x-endpoint-group-name":"Historical OHLC+ (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE","VWAP","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/futures/v2/historical/liquidation-messages/hour":{"get":{"summary":"Updates (LIQ) Full Hour","description":"The Futures Message Updates Liquidation Full Hour endpoint offers tick-level liquidation data, capturing every available update for a selected futures instrument on a chosen exchange during a specified hour.","x-extended-description-with-markdown":"The Futures Message Updates Liquidation Full Hour endpoint offers tick-level liquidation data, capturing every available update for a selected futures instrument on a chosen exchange during a specified hour.\n\n### Use Cases\n- **Intraday Risk Monitoring**\n- **Market Analysis**\n- **Algorithmic Trading Development**\n\n### Target Audience\n- **Futures Traders**\n- **Risk Managers**\n- **Quantitative Analysts**\n\nThis endpoint is an essential resource for financial professionals who need a comprehensive view of liquidation events within a specific hour.","tags":["Futures"],"operationId":"futures_v2_historical_liquidation_messages_hour","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_liquidation_message","x-endpoint-group-name":"Updates (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the liquidation updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all liquidation updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1647263456},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid liquidation updates from the response. Invalid liquidation updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid liquidation updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid liquidation updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any liquidation updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v2/historical/liquidation-messages":{"get":{"summary":"Updates (LIQ) by Timestamp","description":"The Futures Message Updates Liquidation by Timestamp endpoint provides tick-level liquidation data for perpetual futures instruments from a specified timestamp onwards.","x-extended-description-with-markdown":"The Futures Message Updates Liquidation by Timestamp endpoint provides tick-level liquidation data for perpetual futures instruments from a specified timestamp onwards.\n\n### Use Cases\n- **Real-Time Risk Monitoring**\n- **Historical Analysis**\n- **Market Research**\n\n### Target Audience\n- **Traders**\n- **Quantitative Analysts**\n- **Risk Managers**\n\nThis endpoint is a crucial tool for anyone involved in trading or analyzing perpetual futures markets.","tags":["Futures"],"operationId":"futures_v2_historical_liquidation_messages","x-section":"Futures","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_historical_liquidation_message","x-endpoint-group-name":"Updates (LIQ)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bybit","binance","bitfinex","bitget","huobipro","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"bybit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USDT-VANILLA-PERPETUAL"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest liquidation message in the response","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1647285056},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of liquidation messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid liquidation updates from the response. Invalid liquidation updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid liquidation updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid liquidation updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any liquidation updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/futures/v1/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"This endpoint is specifically tailored for the Futures segment of the API, providing essential metadata about futures instruments traded on various exchanges. It delivers critical non-price related information, including mappings, operational statuses, and historical data points such as the first and last seen timestamps for each instrument. Unlike the Markets + Instruments endpoint, which offers a streamlined subset of data, the Futures Instrument Metadata endpoint is designed for comprehensive internal analysis and integration, ensuring that organizations have detailed insights necessary for effective management and evaluation of futures trading instruments.","x-extended-description-with-markdown":"This endpoint is specifically tailored for the Futures segment of the API, providing essential metadata about futures instruments traded on various exchanges. It delivers critical non-price related information, including mappings, operational statuses, and historical data points such as the first and last seen timestamps for each instrument. Unlike the Markets + Instruments endpoint, which offers a streamlined subset of data, the Futures Instrument Metadata endpoint is designed for comprehensive internal analysis and integration, ensuring that organizations have detailed insights necessary for effective management and evaluation of futures trading instruments.\n\n### Use Cases\n- **Internal Data Management**: Ideal for financial institutions that need complete oversight and detailed record-keeping of futures instruments.\n- **Comprehensive Data Integration**: Facilitates complex system integrations by providing extensive metadata essential for accurate and thorough data handling.\n- **Regulatory Compliance and Reporting**: Supports compliance with trading regulations by supplying exhaustive historical and operational status data needed for detailed reporting and monitoring.\n- **Advanced Research and Analysis**: Provides the depth of data required for in-depth market research or strategy backtesting, offering comprehensive historical access and operational insights.\n\n### Target Audience\n- **Data Managers in Financial Institutions**: Professionals responsible for the management and upkeep of extensive datasets related to futures instruments.\n- **System Integrators and IT Professionals**: Those who implement and maintain financial data systems that require detailed information about each futures instrument.\n- **Compliance and Regulatory Officers**: Professionals who need detailed histories and status information on futures instruments for compliance and regulatory monitoring.\n- **Financial Researchers and Analysts**: Analysts and researchers requiring in-depth metadata for advanced financial analysis or historical research related to futures markets.\n\nThe Futures Instrument Metadata Endpoint is an invaluable tool for organizations engaged in futures trading, providing a wealth of detailed, non-price related metadata necessary for a wide range of applications from compliance to system integration. This endpoint ensures that users have access to all relevant details needed to manage, evaluate, and operate futures trading instruments effectively. For entities requiring comprehensive and precise information on futures instruments, this endpoint is critical. Dive into this rich dataset to enhance your operational strategies, maintain rigorous compliance, and support sophisticated research and data management efforts. Start utilizing this essential resource today to gain a competitive edge in managing and analyzing futures instruments.","tags":["Futures"],"operationId":"futures_v1_latest_instrument_metadata","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["BTCUSD_PERP","ETH-USDT-VANILLA-PERPETUAL"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","MIGRATION","SOURCE","INTERNAL"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/markets":{"get":{"summary":"Markets (Futures)","description":"This endpoint provides comprehensive information about various cryptocurrency futures markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific futures market, such as its available contracts, leverage options, margin requirements, settlement mechanisms, operational status, and comprehensive static metadata including exchange status, launch dates, supported contract types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available futures markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency futures markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific futures market, such as its available contracts, leverage options, margin requirements, settlement mechanisms, operational status, and comprehensive static metadata including exchange status, launch dates, supported contract types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available futures markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_FUTURES, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—futures markets show polling/streaming flags for perpetual and fixed-term contracts, margin calculation methods, funding rate mechanisms, and liquidation engine specifications. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency derivatives exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, risk management tools, and benchmark monitoring specific to leveraged trading environments.\n\n### Use Cases\n- **Derivatives Market Analysis**: Enables traders and institutional investors to compare cryptocurrency futures exchanges using quantifiable benchmark scores, leverage ratios, margin requirements, and contract specifications, helping them identify the most liquid or most suitable venues for their derivatives trading strategies.\n- **Risk Management Planning**: Risk officers and portfolio managers can access detailed market data including maximum leverage limits, liquidation mechanisms, insurance fund details, and settlement procedures to assess counterparty risk and plan position sizing across multiple derivatives venues.\n- **Integration Strategy**: Developers can examine per-exchange integration setups for futures markets—whether we poll or stream perpetual funding rates, how settlement data is captured, when futures exchanges were integrated, and how many active contracts are currently mapped—reducing development complexity and API integration cycles.\n- **Regulatory Compliance**: Access to traceable external references including futures trading licenses, regulatory filings, jurisdiction information, and compliance certifications helps automate regulatory reporting workflows and institutional client onboarding for derivatives trading.\n- **Liquidity Assessment**: Direct access to current and historical benchmark scores, combined with contract-specific metadata like tick sizes, minimum order values, and maker/taker fee structures, enables building sophisticated liquidity analysis tools and execution algorithms.\n- **Market Structure Research**: Provides comprehensive insights into derivatives market infrastructure, funding rate mechanisms, settlement procedures, and margin calculation methods across different cryptocurrency futures exchanges.\n- **Algorithmic Trading Integration**: Developers can integrate this endpoint into systematic trading applications requiring dynamic, structured metadata about futures markets, with the ability to filter for specific contract types, settlement mechanisms, or leverage characteristics.\n- **Cross-Exchange Arbitrage**: Traders can identify arbitrage opportunities by comparing contract specifications, funding rates, settlement times, and operational characteristics across multiple futures exchanges.\n\n### Target Audience\n- **Cryptocurrency Derivatives Traders** and **Quantitative Analysts** seeking detailed insights into futures market infrastructure, leverage options, funding mechanisms, and operational status for informed derivatives trading decisions and strategy development.\n- **Institutional Investment Firms** and **Hedge Funds** requiring comprehensive understanding of exchange risk management procedures, margin requirements, liquidation engines, and settlement mechanisms to evaluate venues for large-scale derivatives trading.\n- **Risk Management Professionals** leveraging benchmark scores, margin calculation methods, insurance fund transparency, and liquidation procedure documentation for derivatives exchange evaluation and portfolio risk assessment.\n- **Regulatory Affairs Teams** utilizing structured access to futures trading licenses, jurisdiction information, regulatory compliance documentation, and operational transparency reports for derivatives trading compliance and due diligence.\n- **Academic Researchers** studying cryptocurrency derivatives market structure, funding rate dynamics, leverage trends, and ecosystem evolution with access to historical benchmark data and contract specification timelines.\n- **Fintech Developers** building derivatives trading platforms, margin calculators, or risk management tools requiring structured futures exchange metadata, contract specifications, and programmatic discovery capabilities.\n- **Market Data Providers** and **Derivatives Analytics Platforms** integrating comprehensive futures exchange metadata to enhance their products with detailed derivatives market infrastructure insights and cross-venue comparison capabilities.\n- **Exchange Due Diligence Services** using benchmark scores, operational metrics, regulatory status, and risk management transparency data to provide comparative analysis and safety ratings of cryptocurrency derivatives trading venues.\n- **Algorithmic Trading Firms** requiring programmatic access to contract specifications, fee structures, API capabilities, and operational metadata for automated trading system development and cross-exchange strategy deployment.","tags":["Deprecated"],"operationId":"futures_v1_markets","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_markets","x-endpoint-group-name":"Markets (Futures)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"binance"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_FUTURES","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"futures_v2_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v2/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about various cryptocurrency futures markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a markets through the \"markets\" parameter, users can retrieve details about specific futures markets, such as their available contracts, leverage options, margin requirements, settlement mechanisms, operational status, and comprehensive static metadata including exchange status, launch dates, supported contract types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available futures markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency futures markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a markets through the \"markets\" parameter, users can retrieve details about specific futures markets, such as their available contracts, leverage options, margin requirements, settlement mechanisms, operational status, and comprehensive static metadata including exchange status, launch dates, supported contract types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available futures markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_FUTURES, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—futures markets show polling/streaming flags for perpetual and fixed-term contracts, margin calculation methods, funding rate mechanisms, and liquidation engine specifications. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency derivatives exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, risk management tools, and benchmark monitoring specific to leveraged trading environments.\n\n### Use Cases\n- **Derivatives Market Analysis**: Enables traders and institutional investors to compare cryptocurrency futures exchanges using quantifiable benchmark scores, leverage ratios, margin requirements, and contract specifications, helping them identify the most liquid or most suitable venues for their derivatives trading strategies.\n- **Risk Management Planning**: Risk officers and portfolio managers can access detailed market data including maximum leverage limits, liquidation mechanisms, insurance fund details, and settlement procedures to assess counterparty risk and plan position sizing across multiple derivatives venues.\n- **Integration Strategy**: Developers can examine per-exchange integration setups for futures markets—whether we poll or stream perpetual funding rates, how settlement data is captured, when futures exchanges were integrated, and how many active contracts are currently mapped—reducing development complexity and API integration cycles.\n- **Regulatory Compliance**: Access to traceable external references including futures trading licenses, regulatory filings, jurisdiction information, and compliance certifications helps automate regulatory reporting workflows and institutional client onboarding for derivatives trading.\n- **Liquidity Assessment**: Direct access to current and historical benchmark scores, combined with contract-specific metadata like tick sizes, minimum order values, and maker/taker fee structures, enables building sophisticated liquidity analysis tools and execution algorithms.\n- **Market Structure Research**: Provides comprehensive insights into derivatives market infrastructure, funding rate mechanisms, settlement procedures, and margin calculation methods across different cryptocurrency futures exchanges.\n- **Algorithmic Trading Integration**: Developers can integrate this endpoint into systematic trading applications requiring dynamic, structured metadata about futures markets, with the ability to filter for specific contract types, settlement mechanisms, or leverage characteristics.\n- **Cross-Exchange Arbitrage**: Traders can identify arbitrage opportunities by comparing contract specifications, funding rates, settlement times, and operational characteristics across multiple futures exchanges.\n\n### Target Audience\n- **Cryptocurrency Derivatives Traders** and **Quantitative Analysts** seeking detailed insights into futures market infrastructure, leverage options, funding mechanisms, and operational status for informed derivatives trading decisions and strategy development.\n- **Institutional Investment Firms** and **Hedge Funds** requiring comprehensive understanding of exchange risk management procedures, margin requirements, liquidation engines, and settlement mechanisms to evaluate venues for large-scale derivatives trading.\n- **Risk Management Professionals** leveraging benchmark scores, margin calculation methods, insurance fund transparency, and liquidation procedure documentation for derivatives exchange evaluation and portfolio risk assessment.\n- **Regulatory Affairs Teams** utilizing structured access to futures trading licenses, jurisdiction information, regulatory compliance documentation, and operational transparency reports for derivatives trading compliance and due diligence.\n- **Academic Researchers** studying cryptocurrency derivatives market structure, funding rate dynamics, leverage trends, and ecosystem evolution with access to historical benchmark data and contract specification timelines.\n- **Fintech Developers** building derivatives trading platforms, margin calculators, or risk management tools requiring structured futures exchange metadata, contract specifications, and programmatic discovery capabilities.\n- **Market Data Providers** and **Derivatives Analytics Platforms** integrating comprehensive futures exchange metadata to enhance their products with detailed derivatives market infrastructure insights and cross-venue comparison capabilities.\n- **Exchange Due Diligence Services** using benchmark scores, operational metrics, regulatory status, and risk management transparency data to provide comparative analysis and safety ratings of cryptocurrency derivatives trading venues.\n- **Algorithmic Trading Firms** requiring programmatic access to contract specifications, fee structures, API capabilities, and operational metadata for automated trading system development and cross-exchange strategy deployment.","tags":["Futures"],"operationId":"futures_v2_markets","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v2_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["binance"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_FUTURES","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves a comprehensive dictionary of mapped futures trading instruments across derivatives exchanges. Each entry uses a standardized canonical format that encodes contract specification, denomination type, and expiration/perpetual status, enabling deterministic cross-venue normalization and reliable reference across all futures markets.","x-extended-description-with-markdown":"This endpoint retrieves a comprehensive dictionary of mapped futures trading instruments across derivatives exchanges. Each entry uses a standardized canonical format that encodes contract specification, denomination type, and expiration/perpetual status, enabling deterministic cross-venue normalization and reliable reference across all futures markets. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).\n\nThe unified futures mapping schema handles the complexity of derivatives contracts through systematic denomination classification (VANILLA, INVERSE, QUANTO) and standardized expiration encoding, providing integration-ready metadata for building robust derivatives data infrastructure.\n\n### Futures Mapping Methodology\nThis endpoint uses a standardized canonical format `{REFERENCE_ASSET}-{QUOTE_CURRENCY}-{DENOMINATION_TYPE}-{EXPIRATION}` to uniquely identify futures contracts across all venues. The denomination type captures the settlement mechanics: VANILLA contracts settle in the quote currency (linear), INVERSE contracts settle in the underlying asset (common for BTC/ETH perpetuals), and QUANTO contracts settle in a third currency for cross-currency exposure.\nExpiration encoding handles both perpetual contracts (PERPETUAL for `contract_expiration_ts = -1`) and dated futures (YYYYMMDD format). Examples include `ETH-USD-INVERSE-PERPETUAL` for inverse perpetuals settled in ETH, `BTC-USD-VANILLA-20240329` for linear quarterly contracts settled in USD, and `ETH-USD-QUANTO-PERPETUAL` for quanto perpetuals with alternative settlement currencies.\n\n### Use Cases\n- **Derivatives Infrastructure**: Build normalized futures data feeds with consistent contract identification across all major derivatives exchanges, handling complex denomination logic and expiration cycles.\n- **Risk Management Systems**: Implement precise position tracking and exposure calculation using standardized contract specifications, settlement currencies, and leverage ratios.\n- **Cross-Exchange Arbitrage**: Enable systematic price comparison and spread analysis across venues using canonical contract mapping and real-time operational status.\n- **Quantitative Research**: Access clean, categorized derivatives data for volatility surface modeling, basis analysis, and cross-asset derivatives strategies.\n- **Portfolio Analytics**: Track futures positions with accurate P&L calculation using correct settlement currencies, contract multipliers, and mark-to-market logic.\n- **Trading Platform Integration**: Implement multi-venue derivatives trading with unified contract reference, order routing, and position reconciliation.\n- **Market Making Operations**: Deploy systematic liquidity provision across exchanges using standardized contract metadata and operational integration context.\n- **Regulatory Reporting**: Generate compliant derivatives exposure reports using canonical instrument identification and complete contract specifications.\n\n### Target Audience\n- **Derivatives Trading Firms**: Systematic traders requiring normalized contract data for multi-venue algorithmic strategies and cross-exchange position management.\n- **Risk Management Teams**: Portfolio managers needing accurate futures exposure calculation, margin requirements, and settlement currency tracking across venues.\n- **Quantitative Developers**: Engineers building derivatives data infrastructure, volatility models, and systematic trading systems requiring clean contract mapping.\n- **Institutional Asset Managers**: Portfolio construction teams incorporating crypto derivatives with precise risk metrics and standardized position tracking.\n- **Market Data Vendors**: Data providers needing canonical futures reference data for client feeds, index calculation, and normalized market data products.\n- **Compliance & Operations**: Teams managing derivatives trading operations, regulatory reporting, and cross-venue position reconciliation workflows.\n- **Trading Infrastructure Engineers**: Backend developers building low-latency derivatives trading systems with deterministic contract identification and routing logic.","tags":["Futures"],"operationId":"futures_v1_markets_instruments","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"The mapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["BTC-USD-INVERSE-PERPETUAL","ETH-USD-INVERSE-PERPETUAL"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_FUTURES","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/futures/v1/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint exposes all futures instruments (contracts) available across selected derivatives markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed contracts, exotic structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated futures infrastructure.","x-extended-description-with-markdown":"This endpoint exposes all futures instruments (contracts) available across selected derivatives markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed contracts, exotic structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated futures infrastructure.\n\nThe endpoint supports precise metadata access via the `groups` parameter, allowing selective retrieval of contract-level data such as: BASIC, DESCRIPTION, RESOURCE_LINKS, and more. The schema design prioritizes machine-readability, making it easy to filter, categorize, and act on contract data without requiring brittle custom logic.\n\n### Use Cases\n- **Derivatives Data Infrastructure**: Automatically detect and ingest new perpetuals, quarterlies, and exotic futures contracts across major and long-tail exchanges.\n- **Automated Trading Systems**: Power futures strategies with real-time contract visibility and metadata-driven instrument handling.\n- **Risk Management**: Maintain full awareness of open contracts and expirations across platforms for exposure monitoring and rollover handling.\n- **Surveillance & Compliance**: Track complete contract catalogs for audit trail requirements, market abuse detection, and historical availability.\n- **Product Management**: Drive the search, filtering, and instrument selection experience in trading frontends and research dashboards.\n- **Quantitative Research**: Support modeling, signal extraction, and strategy calibration using normalized and enriched contract metadata.\n- **Business Intelligence**: Track competition, coverage gaps, and launch patterns across derivatives venues.\n- **Derivatives Data Infrastructure**: Automatically detect and ingest new perpetuals, quarterlies, and exotic futures contracts across major and long-tail exchanges.\n- **Automated Trading Systems**: Power futures strategies with real-time contract visibility and metadata-driven instrument handling.\n- **Risk Management**: Maintain full awareness of open contracts and expirations across platforms for exposure monitoring and rollover handling.\n- **Surveillance & Compliance**: Track complete contract catalogs for audit trail requirements, market abuse detection, and historical availability.\n- **Product Management**: Drive the search, filtering, and instrument selection experience in trading frontends and research dashboards.\n- **Quantitative Research**: Support modeling, signal extraction, and strategy calibration using normalized and enriched contract metadata.\n- **Business Intelligence**: Track competition, coverage gaps, and launch patterns across derivatives venues.\n- **Operations & Monitoring**: Provide observability pipelines with insights into available futures instruments, upcoming expiries, and market-level contract drift.\n\n### Target Audience\n- **Data Engineers & Backend Developers**: Integrating futures instruments into ETL systems and data lakes.\n- **Quantitative Developers & Traders**: Needing metadata-rich feeds for backtesting, alpha generation, and position handling.\n- **DevOps & Platform Reliability Teams**: Monitoring contract churn, expiration dynamics, and operational readiness.\n- **Integration & Connectivity Engineers**: Onboarding and syncing futures markets across multiple exchanges.\n- **Product Owners & UX Designers**: Enhancing discoverability and relevance of derivatives instruments in end-user tools.\n- **Compliance & Risk Analysts**: Ensuring consistent visibility over regulated and unregulated futures products.\n- **Customer Success & Technical Support**: Assisting users in navigating contract lifecycles, margining types, and availability patterns.\n\n**For standardized, normalized instrument data**, consider using the [mapped futures instruments endpoint](https://developers.coindesk.com/documentation/data-api/futures_v1_markets_instruments) instead. This endpoint provides cleaned, deduplicated contracts with consistent naming conventions, standardized metadata, and unified symbols across exchanges—ideal for applications requiring reliable cross-exchange comparisons, historical analysis, and streamlined integration workflows. The mapping process eliminates exchange-specific quirks and data inconsistencies, making it significantly easier to build robust trading systems, analytics dashboards, and compliance reporting without handling raw exchange variations. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).","tags":["Futures"],"operationId":"futures_v1_markets_instruments_unmapped","x-section":"Futures","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"futures_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","binanceaggregate","bit","bitfinex","bitget","bitmex","btcex","bullish","bybit","coinbase","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"The unmapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["pi_xbtusd","pi_ethusd"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","BASIC","INTERNAL","INTEGRATION_FUTURES","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/latest/tick":{"get":{"summary":"Instrument Latest Tick","description":"The Options Instrument Latest Tick endpoint retrieves the latest trade information for specified options instruments on a chosen exchange. This API endpoint provides real-time data, including the latest trade prices, bid and ask prices, volume metrics, and timestamps. Additionally, it returns up-to-date price and volume metrics aggregated over various time periods, ensuring users have access to comprehensive and current market data.","x-extended-description-with-markdown":"The Options Instrument Latest Tick endpoint retrieves the latest trade information for specified options instruments on a chosen exchange. This API endpoint provides real-time data, including the latest trade prices, bid and ask prices, volume metrics, and timestamps. Additionally, it returns up-to-date price and volume metrics aggregated over various time periods, ensuring users have access to comprehensive and current market data.\n\n### Use Cases\n- **Real-Time Trading**: Enables traders to access the most recent trade information and aggregated metrics for options instruments, facilitating timely and informed trading decisions.\n- **Market Monitoring**: Supports analysts in tracking market movements and trends by providing the latest trade prices, bid and ask prices, and volume metrics.\n- **Algorithmic Trading**: Assists in developing and executing automated trading strategies that rely on the most current trade data and aggregated metrics.\n- **Risk Management**: Helps risk managers monitor real-time market conditions and aggregated data to assess and mitigate risk exposure effectively.\n\n### Target Audience\n- **Options Traders**: Require the latest trade information and aggregated metrics to make prompt and informed trading decisions.\n- **Financial Analysts**: Need real-time market data to monitor trends and perform analysis.\n- **Algorithmic Traders and Developers**: Utilize up-to-date trade data and aggregated metrics to implement and refine automated trading strategies.\n- **Risk Managers**: Require real-time data and aggregated metrics to evaluate and manage risk exposure continuously.\n\nThe Options Instrument Latest Tick endpoint is essential for retrieving the latest trade information for specified options instruments on a chosen exchange. By providing real-time trade prices, bid and ask prices, volume metrics, and timestamps, along with aggregated price and volume data over various time periods, it supports real-time trading, market monitoring, algorithmic trading, and risk management. This endpoint is ideal for options traders, financial analysts, algorithmic traders, and risk managers, offering them the timely and accurate data necessary for effective market participation and decision-making. Integrate this endpoint today to stay updated with the latest market conditions and enhance your trading strategies and risk management processes in the options market.","tags":["Options"],"operationId":"options_v1_latest_tick","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument BTC-29MAR24-38000-P or mapped instrument BTC-USD-20240329-38000-P on deribit as an example). We return the mapped version of the instrument by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["ETH-31JAN25-2500-P","BTC-29DEC23-21000-C"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","TOP_OF_BOOK","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/historical/days":{"get":{"summary":"Historical OHLCV+ Day","description":"The Options Historical OHLCV+ Day endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on a daily basis. This API endpoint delivers comprehensive historical data, enabling users to perform detailed analysis of options market performance over time. It is essential for long-term market analysis, backtesting strategies, and informed decision-making based on historical trends.","x-extended-description-with-markdown":"The Options Historical OHLCV+ Day endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on a daily basis. This API endpoint delivers comprehensive historical data, enabling users to perform detailed analysis of options market performance over time. It is essential for long-term market analysis, backtesting strategies, and informed decision-making based on historical trends.\n\n### Use Cases\n- **Historical Market Analysis**: Enables financial analysts to perform detailed historical market analysis by accessing daily aggregated OHLCV data.\n- **Backtesting Trading Strategies**: Supports traders in backtesting and refining trading strategies using historical daily options data.\n- **Market Research and Reporting**: Provides essential data for comprehensive market research and generating detailed reports on historical market performance.\n- **Investment Planning**: Assists investors in making informed long-term investment decisions by analyzing historical market trends and options performance.\n\n### Target Audience\n- **Financial Analysts**: Professionals who require historical OHLCV data to analyze past market trends and perform in-depth market research.\n- **Traders and Strategy Developers**: Individuals who backtest and refine trading strategies based on historical options data.\n- **Market Researchers**: Researchers needing extensive historical data to study market behavior and generate detailed reports.\n- **Investors and Portfolio Managers**: Professionals who make long-term investment decisions and plan portfolios based on historical market performance.\n\nThis endpoint is an invaluable tool for accessing historical OHLCV data for specified options instruments on a chosen exchange, aggregated daily. It ensures comprehensive and accurate historical analysis, facilitating informed decision-making and strategic planning.","tags":["Options"],"operationId":"options_v1_historical_days","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v1/historical/hours":{"get":{"summary":"Historical OHLCV+ Hour","description":"The Options Historical OHLCV+ Hour endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on an hourly basis. This API endpoint offers granular historical data, allowing for detailed analysis of intraday market performance. It is ideal for short-term analysis, backtesting trading strategies, and making informed decisions based on hourly historical trends.","x-extended-description-with-markdown":"The Options Historical OHLCV+ Hour endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on an hourly basis. This API endpoint offers granular historical data, allowing for detailed analysis of intraday market performance. It is ideal for short-term analysis, backtesting trading strategies, and making informed decisions based on hourly historical trends.\n\n### Use Cases\n- **Intraday Market Analysis**: Enables financial analysts to perform detailed intraday market analysis by accessing hourly aggregated OHLCV data.\n- **Backtesting Short-Term Trading Strategies**: Supports traders in backtesting and refining short-term trading strategies using historical hourly options data.\n- **Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on hourly market performance.\n- **Day Trading and Scalping**: Assists day traders and scalpers in making informed trading decisions by analyzing hourly market trends and options performance.\n\n### Target Audience\n- **Day Traders and Scalpers**: Individuals who require detailed hourly OHLCV data to make informed trading decisions based on intraday market movements.\n- **Financial Analysts**: Professionals who analyze intraday market trends and perform in-depth market research using historical hourly data.\n- **Strategy Developers**: Developers and traders who backtest and refine short-term trading strategies based on historical hourly options data.\n- **Market Researchers**: Researchers needing extensive historical intraday data to study market behavior and generate precise reports.\n\nThis endpoint is an invaluable tool for accessing hourly aggregated OHLCV data for specified options instruments on a chosen exchange. It ensures comprehensive and accurate intraday analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v1_historical_hours","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","TRADE","VOLUME"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v1/historical/minutes":{"get":{"summary":"Historical OHLCV+ Minute","description":"The Options Historical OHLCV+ Minute endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on a minute-by-minute basis. This API endpoint offers highly granular historical data, enabling detailed analysis of minute-level market performance. Ideal for precise short-term analysis and high-frequency trading strategies, it supports comprehensive market research and informed decision-making based on minute-by-minute historical trends.","x-extended-description-with-markdown":"The Options Historical OHLCV+ Minute endpoint provides historical OHLCV (open, high, low, close, volume) data for specified options instruments on a chosen exchange, aggregated on a minute-by-minute basis. This API endpoint offers highly granular historical data, enabling detailed analysis of minute-level market performance. Ideal for precise short-term analysis and high-frequency trading strategies, it supports comprehensive market research and informed decision-making based on minute-by-minute historical trends.\n\n### Use Cases\n- **High-Frequency Trading Analysis**: Enables traders to perform detailed minute-by-minute market analysis using highly granular OHLCV data.\n- **Backtesting Rapid Trading Strategies**: Supports traders in backtesting and refining high-frequency trading strategies with historical minute-level options data.\n- **Intraday Market Research**: Provides essential data for in-depth intraday market research and generating detailed reports on minute-by-minute market performance.\n- **Algorithmic Trading**: Assists algorithmic traders in optimizing trading algorithms by analyzing minute-level market trends and options performance.\n\n### Target Audience\n- **High-Frequency Traders**: Individuals who require minute-level OHLCV data to make rapid, informed trading decisions based on short-term market movements.\n- **Algorithmic Traders**: Developers and traders using automated systems that rely on granular minute-by-minute options data for executing high-frequency strategies.\n- **Financial Analysts**: Professionals who analyze minute-level market trends and perform detailed intraday market research.\n- **Market Researchers**: Researchers needing extensive historical minute-level data to study market behavior and generate precise reports.\n\nThis endpoint is an invaluable tool for accessing minute-level aggregated OHLCV data for specified options instruments on a chosen exchange. It ensures precise and accurate short-term analysis, facilitating informed trading decisions and optimized high-frequency trading strategies.","tags":["Options"],"operationId":"options_v1_historical_minutes","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical","x-endpoint-group-name":"Historical OHLCV+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_TRADE","TRADE","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","TRADE","VOLUME"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v2/historical/trades/hour":{"get":{"summary":"Trades Full Hour","description":"The Options Trades Full Hour endpoint provides detailed, standardized, and deduplicated trade data for specified options instruments on a chosen exchange, capturing all trades that occurred within a specified hour. Each trade includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This API endpoint delivers comprehensive trade information, including individual trade prices, volumes, and timestamps. It is essential for users who need to analyze every trade executed within the hour, identify trends, and make informed trading decisions based on this granular data. This endpoint is also ideal for backfilling all trades on an instrument from the instrument listing time to the present.","x-extended-description-with-markdown":"The Options Trades Full Hour endpoint provides detailed, standardized, and deduplicated trade data for specified options instruments on a chosen exchange, capturing all trades that occurred within a specified hour. Each trade includes an individual CCSEQ (CryptoCompare Sequence) number, trade side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This API endpoint delivers comprehensive trade information, including individual trade prices, volumes, and timestamps. It is essential for users who need to analyze every trade executed within the hour, identify trends, and make informed trading decisions based on this granular data. This endpoint is also ideal for backfilling all trades on an instrument from the instrument listing time to the present.\n\n### Use Cases\n- **Intraday Trade Analysis**: Enables financial analysts to perform detailed analysis of trading activity within specific hourly intervals by examining every trade.\n- **Strategy Development and Backtesting**: Supports traders in developing and backtesting trading strategies using detailed trade data for each trade within the hour.\n- **Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on hourly trading activity.\n- **Risk Management**: Assists risk managers in assessing and mitigating risk by analyzing trading patterns and volumes on a trade-by-trade basis.\n- **Historical Data Backfill**: Ideal for users who need to backfill all trades from the instrument's listing time to the current time, ensuring a complete dataset for historical analysis.\n\n### Target Audience\n- **Day Traders and Scalpers**: Individuals who require detailed trade data for every trade that occurred within the hour to make informed trading decisions.\n- **Financial Analysts**: Professionals who analyze trade-by-trade data to understand market behavior and perform in-depth market research.\n- **Strategy Developers**: Developers and traders who backtest and refine trading strategies using detailed trade data.\n- **Risk Managers**: Professionals who monitor and assess risk exposure by analyzing detailed trading patterns and volumes within specific hourly intervals.\n- **Data Engineers and Analysts**: Those who need to backfill historical trade data from the listing time of the instrument to the present for comprehensive analysis.\n\nThis endpoint is an invaluable tool for accessing every trade that occurred within a specified hour for specified options instruments on a chosen exchange. It ensures comprehensive and accurate analysis of intraday trading activity, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v2_historical_trades_hour","x-section":"Options","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting trades you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the trades you are interested in. You can pass any timestamp within an hour but we will round it down to the full hour timestamp and return all trades in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1721869200},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid trades from the response. Invalid trades are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid trades are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid trades but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any trades were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_TRADE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v2/historical/trades":{"get":{"summary":"Trades By Timestamp","description":"This endpoint provides detailed, standardized, and deduplicated options trade data for a specified instrument on a chosen exchange, starting from a given timestamp. This endpoint meticulously captures every options transaction executed, detailing each trade's timestamp, premium value, contract size, option type (put/call), and associated market. Each trade also includes an individual CCSEQ (CryptoCompare Sequence) number, trade side (buy/sell), and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It's particularly useful for users who need to analyze specific periods of options trading activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at precise moments. It is ideal for users who need to stay up to date with the latest options trades.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated options trade data for a specified instrument on a chosen exchange, starting from a given timestamp. This endpoint meticulously captures every options transaction executed, detailing each trade's timestamp, premium value, contract size, option type (put/call), and associated market. Each trade also includes an individual CryptoCompare Sequence (CCSEQ) number, trade side (buy/sell), and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It is particularly useful for users who need to analyze specific periods of options trading activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at precise moments. It is ideal for users who need to stay up to date with the latest options trades.\n\n### Key Features\n- **Granular Options Trade Data:**: Access detailed options trade information, including timestamps with nanosecond precision, premium values, contract sizes, and option types (put/call).\n- **Standardized and Deduplicated Information**: Receive clean, consistent data free from duplicates for accurate cryptocurrency options market analysis..\n- **Unique CCSEQ Numbers:**: Each options trade includes an individual CryptoCompare Sequence (CCSEQ) number for precise tracking and sequencing.\n- **Trade Side Identification**: Determine the buy or sell side of each options trade to enhance market sentiment analysis..\n- **Real-Time Data Retrieval**: Obtain data starting from any given timestamp to focus on specific trading periods or events in the options market.\n- **Received and Reported Timestamps**: Compare exchange-reported timestamps with data receipt times for comprehensive temporal analysis.\n\n### Use Cases\n- **Detailed Options Trade Analysis**: Examine options trade executions at specific moments for forensic market analysis or detailed trade reconstruction..\n- **Event-Driven Strategy Development**: Develop trading strategies that capitalize on market reactions to news or events by studying their immediate impact on options markets.\n- **Compliance and Audit Trails**: Utilize detailed transaction records to ensure options trading activities meet regulatory standards and provide clear audit trails.\n- **Academic Research**: Conduct studies on market microstructures or options trading pattern impacts using precise, timestamped trade data.\n- **Algorithmic Trading Models**: Build and refine algorithmic trading models that depend on high-frequency options trade data for backtesting and live trading.\n\n### Target Audiences\n- **Financial Analysts and Market Researchers**: Professionals requiring precise historical data to analyze market trends or validate hypotheses.\n- **Regulatory and Compliance Professionals**: Individuals needing detailed transaction records for monitoring and reporting.\n- **Algorithmic Traders and Quantitative Analysts**: Developers of models dependent on high-frequency cryptocurrency trade data.\n- **Academic Institutions**: Researchers and students studying financial markets who need access to high-resolution data.\n- **Data Scientists**: Professionals working on machine learning models and predictive analytics in financial markets.\n\n### Data Handling Notes\n- **Identifying the First Trade Timestamp**: Use the FIRST_TRADE_OPTIONS_TIMESTAMP from the [Markets + Instruments](/documentation/data-api/options_v1_markets_instruments) endpoint to determine the timestamp of the first trade for any given instrument. This establishes the starting point of your data analysis, ensuring a complete history from inception. This is the only scenario where you should not include the last_ccseq parameter in your request.\n- **Handling Identical Timestamps in Pagination**: If all returned trades share the same timestamp, refine your pagination by including both the timestamp of the last trade in the after_ts parameter and its CCSEQ in the last_ccseq parameter. Always adding last_ccseq in your requests ensures seamless pagination without missing any trades.\n- **Skipping Invalid Messages**: To maintain data accuracy, there are instances where trades may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid trades. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all trades. For comprehensive data, we recommend not skipping invalid messages.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest options trades, it is not efficient for backfilling historical data or catching up on multiple days of missed trades. For backfilling, use the [Trades Full Hour Endpoint](/documentation/data-api/options_v2_historical_trades_hour) instead. This endpoint stores trades in hourly batches, which can contain up to 5 million trades per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n- **Managing Timeouts from High Volumes of Invalidated Trades**: In cases where exchanges send large volumes of invalid trades — sometimes reaching millions — timeouts can occur as the system searches through numerous blob files before locating valid entries. To prevent these delays, set skip_invalid_messages to false, enabling the endpoint to return both valid and invalid trades. This approach avoids skipping over invalid trades and allows for smoother data retrieval. Paginate results based on the timestamp and CCSEQ of the last invalid trade to maintain continuity without missing data or encountering further timeouts.\n\nBy leveraging this endpoint, users gain access to high-resolution trade data essential for precise market analysis, application development, and strategic planning in the dynamic cryptocurrency trading environment.","tags":["Options"],"operationId":"options_v2_historical_trades","x-section":"Options","x-subsection":"Trade","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_trade","x-endpoint-group-name":"Trades","parameters":[{"name":"market","in":"query","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","TRADE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","TRADE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1721869200},{"name":"last_ccseq","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"skip_invalid_messages","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_TRADE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v1/historical/orderbook/l2/metrics/minute":{"get":{"summary":"Order Book L2 Metrics Minute","description":"This endpoint provides minute-by-minute historical data for Level 2 (L2) order book metrics for various options. This endpoint delivers granular insights into the depth and liquidity of options trading markets by offering detailed metrics such as bid and ask prices, order sizes, and other key indicators at each minute interval. This comprehensive data is essential for analysts, traders, and developers who require high-resolution historical order book information to perform in-depth market analysis, backtesting trading strategies, or building financial applications.","x-extended-description-with-markdown":"This endpoint is an advanced resource tailored for users requiring accurate, minute-by-minute market metrics derived from order book snapshots in options markets. Unlike capturing snapshots themselves, this endpoint provides calculated metrics such as the best bid and ask prices, mid-price, spread percentages, and detailed depth and slippage metrics at specific percentage levels. It ensures consistent data collection at the exact start of each minute, allowing for precise comparisons across different exchanges and instruments. By focusing on metrics built from raw order book messages, the endpoint is ideal for those who need high-resolution and synchronized market data for comprehensive analysis and decision-making.\n\n### Use Cases\n- **Analysing Market Trends**: Evaluate market trends and behaviour over specific time periods using detailed historical data.\n- **In-depth Market Analysis**: Conduct detailed market analysis with granular historical order book data..\n- **Backtesting Trading Strategies**: Use minute-by-minute L2 order book metrics to backtest and refine trading strategies..\n- **Evaluating Trading Performance**: Assess the performance of different trading strategies based on historical order book data.\n- **Building Financial Applications**: Develop financial applications that require comprehensive historical depth and liquidity information.\n\n### Target Audience\n- **Traders**: Individuals needing high-resolution historical data for strategy development and backtesting..\n- **Developers**: Programmers building financial applications that require detailed historical order book information.\n- **Researchers**: Academics and industry researchers studying market dynamics and the impact of various factors on options trading.\n- **Financial Analysts**: Professionals looking to perform comprehensive market analysis..\n- **Quantitative Analysts and Data Scientists**: Experts working on predictive models and market simulations..\n\nThe Market Metrics Endpoint endpoint is a powerful tool for accessing detailed historical L2 order book metrics on a minute-by-minute basis. Its high-resolution data can significantly enhance market analysis, trading strategy development, and financial research. By leveraging this endpoint, users can build sophisticated trading models, conduct thorough backtesting, and gain deeper insights into market dynamics. Start using this endpoint to transform your trading strategies, develop advanced financial applications, and achieve a competitive edge in the options trading market. Examples of potential applications include real-time analytics dashboards, predictive trading algorithms, and comprehensive market research reports.","tags":["Options"],"operationId":"options_v1_historical_orderbook_l2_metrics_minute","x-section":"Options","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bullish","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"XRP-USDC-20241129-0.44-C"},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"groups","in":"query","description":"When requesting l2 snapshots entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","GREEKS","TOP_OF_BOOK","DEPTH_BEST_PRICE","DEPTH_MID_PRICE","SLIPPAGE_BEST_PRICE","SLIPPAGE_MID_PRICE","SLIPPAGE_RAW"],"x-enum-properties-info":{}}},"example":[]},{"name":"index_source","in":"query","description":"Specifies the source identifier for the market Greeks index data, provided by the exchange.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"LATEST","enum":["LATEST","ORDER"],"x-enum-properties-info":{},"minLength":2,"maxLength":30},"example":"LATEST"},{"name":"depth_percentage_levels","in":"query","description":"Comma separated percentage levels greater than 0, relative to the current market price, to analyze the order book depth. Each percentage represents a price level away from the market price at which the cumulative depth of bids and asks is calculated. Commonly used to assess market liquidity and depth at various price intervals from the current price. For example, 0.5,1,2,5 would represent order book depths at 0.5%, 1%, 2%, and 5% increments or decrements from the current market price.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["0.5","2","5"],"minItems":1,"maxItems":5,"items":{"type":"string"}},"example":["0.5","2","5"]},{"name":"depth_measurement_asset","in":"query","description":"Defines the asset in which the depth of the order book is measured which is defaulted to the quote currency. This parameter indicates whether the order book depth is evaluated in terms of the base currency or the quote currency in a trading pair. For instance, setting this parameter to USD in a BTC-USD pair means that the depth is calculated in USD, showing how much USD is required to reach certain depth levels in the order book.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"slippage_size_limits","in":"query","description":"Comma separated trade sizes that are greater than 0 for which slippage is to be calculated. This parameter allows users to understand the expected slippage for trades of different sizes. Slippage is the difference between the expected price of a trade and the price at which it is actually executed. Specifying sizes such as 10000,50000,100000 helps in assessing the potential price impact for trades of 10,000, 50,000, and 100,000 units of the base currency.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["1","1.5"],"minItems":1,"maxItems":15,"items":{"type":"string"}},"example":["1","1.5"]},{"name":"slippage_calculation_asset","in":"query","description":"Specifies the asset in which slippage is calculated which is defaulted to the quote currency. This parameter determines whether slippage is assessed in terms of the base currency or the quote currency in a trading pair. For example, setting this to BTC in a BTC-USD pair focuses the slippage calculation on the BTC amount, indicating how much the BTC quantity deviates from the expected amount in executed trades.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":30}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_ORDERBOOK_L2_METRICS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v1/historical/orderbook/l2/snapshots/minute":{"get":{"summary":"Order Book L2 Snapshots Minute","description":"This endpoint provides minute-by-minute historical snapshots of Level 2 (L2) order book data for various options. It captures detailed information about bid and ask prices, order sizes, and other key indicators at each minute interval, offering a granular view of the market depth and liquidity over time. This data is essential for analysts, traders, and developers who require high-resolution historical order book information for in-depth market analysis, backtesting trading strategies, or building sophisticated financial applications.","x-extended-description-with-markdown":"This endpoint is an essential tool for users needing precise, minute-by-minute snapshots of the order book in options markets. It delivers comprehensive data, including the best bid and ask prices, order sizes, and overall market depth at each minute mark. By providing exact snapshots rather than aggregated metrics, this endpoint allows users to conduct detailed historical analysis, compare market conditions across different time intervals, and understand the liquidity and order flow dynamics of options trading. This high-resolution data is invaluable for creating accurate trading models, performing compliance checks, and supporting academic research..\n\n### Use Cases\n- **Conducting Market Research**: Perform comprehensive market analysis using detailed historical information for well-informed decision-making.\n- **Backtesting Trading Strategies**: Utilize detailed historical snapshots to rigorously test and refine trading strategies under various market conditions.\n- **Building Financial Applications**: Develop sophisticated financial tools with high-resolution historical data, enhancing accuracy and functionality.\n- **Developing Algorithmic Models**: Create and optimize algorithmic trading models using granular historical data to ensure they reflect real market dynamics.\n- **Analyzing Market Depth and Liquidity**: Obtain precise historical data to gain insights into past market behavior, enabling better forecasting and strategic planning.\n\n### Target Audience\n- **Developers**: Developers who need granular data to create advanced financial tools, ensuring these platforms are robust, accurate, and reliable.\n- **Data Scientists**: Data professionals analyzing market trends and patterns using historical data to derive insights and build predictive models.\n- **Investment Firms and Hedge Funds**: Firms that need comprehensive historical data to make informed investment decisions, manage risk, and optimize portfolio performance.\n- **Algorithmic and Quantitative Traders**: Traders who develop and backtest strategies using historical order book data to enhance their trading algorithms and improve performance.\n- **Financial Analysts and Market Researchers**: Professionals who require detailed historical data for thorough market analysis and research, helping them to uncover trends and make data-driven predictions.\n\nThe Order Book L2 Snapshots Minute Endpoint is a vital resource for accessing detailed historical snapshots of L2 order book data on a minute-by-minute basis. Its comprehensive and precise data can greatly enhance market analysis, trading strategy development, and financial research. By leveraging this endpoint, users can build accurate trading models, perform rigorous backtesting, and gain a deeper understanding of market dynamics. Start using this endpoint to elevate your trading strategies, develop advanced financial applications, and secure a competitive advantage in the options trading market. Examples of potential applications include real-time monitoring systems, advanced trading algorithms, and thorough market analysis reports.","tags":["Options"],"operationId":"options_v1_historical_orderbook_l2_snapshots_minute","x-section":"Options","x-subsection":"Order Book","x-roles-required":["free","premium"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_orderbook","x-endpoint-group-name":"Order Book","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["bullish","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"XRP-USDC-20241129-0.44-C"},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":5,"minimum":1,"maximum":60},"example":5},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=60 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=60&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"depth","in":"query","description":"The number of top bids and asks to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":25000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_ORDERBOOK_L2_SNAPSHOTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v1/latest/open-interest/tick":{"get":{"summary":"Latest Tick (OI)","description":"The Options Latest Tick Open Interest endpoint provides real-time updates on open interest for selected options instruments across specified exchanges, along with aggregated data over multiple periods. This API endpoint delivers comprehensive open interest figures, including real-time data and aggregated metrics over different time intervals. Each data point is built off individual open interest messages that are aggregated into various time buckets. This endpoint is crucial for gauging market sentiment, analyzing trading activity, and making informed trading and investment decisions based on open interest trends in the options market.","x-extended-description-with-markdown":"The Options Latest Tick Open Interest endpoint provides real-time updates on open interest for selected options instruments across specified exchanges, along with aggregated data over multiple periods. This API endpoint delivers comprehensive open interest figures, including real-time data and aggregated metrics over different time intervals. Each data point is built off individual open interest messages that are aggregated into various time buckets. This endpoint is crucial for gauging market sentiment, analyzing trading activity, and making informed trading and investment decisions based on open interest trends in the options market.\n\n### Use Cases\n- **Market Sentiment Analysis**: Traders and analysts use real-time and aggregated open interest data to interpret market sentiment, helping to predict price movements based on increases or decreases in open interest.\n- **Enhanced Trading Strategies**: Enables traders to develop and refine trading strategies by analyzing real-time changes and historical trends in open interest, aiding in identifying lucrative entry and exit points.\n- **Risk Management**: Provides essential information for managing portfolio risk by tracking changes in market exposure through open interest levels, both in real-time and over aggregated periods.\n- **Options Market Research**: Financial researchers can delve into real-time and aggregated open interest data to uncover market trends, trading volumes, and price relationships, enhancing their understanding of the options market dynamics.\n- **Hedging Strategies**: Assists hedge fund managers in adjusting their hedging strategies based on real-time open interest data and its aggregated historical trends, ensuring better risk mitigation.\n\n### Target Audience\n- **Options Traders**: Professionals actively trading options who rely on real-time and aggregated open interest data to inform their trading decisions and strategies.\n- **Risk Managers**: Individuals focused on monitoring and mitigating risks associated with position sizes and market volatility using comprehensive open interest data.\n- **Financial Analysts and Market Researchers**: Analysts needing detailed insights into the options market for trend analysis and forecasting, utilizing both real-time and aggregated data.\n- **Hedge Fund Managers**: Managers who use options contracts to hedge against market movements and require up-to-date and aggregated open interest data to refine their strategies promptly.\n\nThis endpoint is designed to support a wide range of financial professionals by providing them with timely and critical data on open interest, both in real-time and over various time intervals. It enhances their ability to make strategic decisions based on comprehensive market insights, whether adjusting trading strategies, managing risk, or conducting detailed market analysis.","tags":["Options"],"operationId":"options_v1_latest_open_interest_tick","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_latest_open_interest","x-endpoint-group-name":"Latest Tick (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument BTC-29MAR24-38000-P or mapped instrument BTC-USD-20240329-38000-P on deribit as an example). We return the mapped version of the instrument by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTC-USD-20241129-25000-P","ETH-USD-20250131-2500-P","XRP-USDC-20241129-0.44-C"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/historical/open-interest/days":{"get":{"summary":"Historical OHLC+ (OI) Day","description":"The Options Historical OHLC+ Open Interest Day endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on a daily basis. This API endpoint delivers comprehensive historical open interest data, enabling detailed analysis of how open interest changes over time. It is essential for users who need granular and standardized information for long-term market analysis, backtesting strategies, and informed decision-making based on daily trends in open interest.","x-extended-description-with-markdown":"The Options Historical OHLC+ Open Interest Day endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on a daily basis. This API endpoint delivers comprehensive historical open interest data, enabling detailed analysis of how open interest changes over time. It is essential for users who need granular and standardized information for long-term market analysis, backtesting strategies, and informed decision-making based on daily trends in open interest.\n\n### Use Cases\n- **Long-Term Market Analysis**: Enables financial analysts to perform detailed long-term analysis by accessing daily aggregated OHLC data based on open interest updates.\n- **Backtesting Trading Strategies**: Supports traders in backtesting and refining trading strategies using historical daily open interest data.\n- **Market Research and Reporting**: Provides essential data for comprehensive market research and generating detailed reports on daily open interest trends.\n- **Risk Management**: Assists risk managers in assessing and mitigating risk by analyzing daily changes in open interest and their impact on market positions.\n\n### Target Audience\n- **Options Traders**: Individuals who require detailed daily OHLC data based on open interest updates to make informed trading decisions based on long-term market movements.\n- **Financial Analysts**: Professionals who analyze daily open interest trends and perform in-depth market research using historical data.\n- **Strategy Developers**: Developers and traders who backtest and refine trading strategies based on historical daily open interest data.\n- **Risk Managers**: Professionals who monitor and assess risk exposure by analyzing daily changes in open interest and their implications for market positions.\n\nThis endpoint is an invaluable tool for accessing historical OHLC data based on open interest updates for specified options instruments on a chosen exchange, aggregated daily. It ensures comprehensive and accurate long-term analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v1_historical_open_interest_days","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v1/historical/open-interest/hours":{"get":{"summary":"Historical OHLC+ (OI) Hour","description":"The Options Historical OHLC+ Open Interest Hour endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on an hourly basis. This API endpoint delivers comprehensive historical open interest data, enabling detailed analysis of how open interest changes over time. It is essential for users who need granular and standardized information for short-term market analysis, backtesting strategies, and informed decision-making based on hourly trends in open interest.","x-extended-description-with-markdown":"The Options Historical OHLC+ Open Interest Hour endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on an hourly basis. This API endpoint delivers comprehensive historical open interest data, enabling detailed analysis of how open interest changes over time. It is essential for users who need granular and standardized information for short-term market analysis, backtesting strategies, and informed decision-making based on hourly trends in open interest.\n\n### Use Cases\n- **Intraday Market Analysis**: Enables financial analysts to perform detailed intraday analysis by accessing hourly aggregated OHLC data based on open interest updates.\n- **Backtesting Short-Term Trading Strategies**: Supports traders in backtesting and refining short-term trading strategies using historical hourly open interest data.\n- **Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on hourly open interest trends.\n- **Risk Management**: Assists risk managers in assessing and mitigating risk by analyzing hourly changes in open interest and their impact on market positions.\n\n### Target Audience\n- **Day Traders and Scalpers**: Individuals who require detailed hourly OHLC data based on open interest updates to make informed trading decisions based on short-term market movements.\n- **Financial Analysts**: Professionals who analyze hourly open interest trends and perform in-depth market research using historical data.\n- **Strategy Developers**: Developers and traders who backtest and refine short-term trading strategies based on historical hourly open interest data.\n- **Risk Managers**: Professionals who monitor and assess risk exposure by analyzing hourly changes in open interest and their implications for market positions.\n\nThis endpoint is an invaluable tool for accessing historical OHLC data based on open interest updates for specified options instruments on a chosen exchange, aggregated hourly. It ensures comprehensive and accurate intraday analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v1_historical_open_interest_hours","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v1/historical/open-interest/minutes":{"get":{"summary":"Historical OHLC+ (OI) Minute","description":"The Options Historical OHLC+ Open Interest Minute endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on a minute-by-minute basis. This API endpoint delivers highly granular historical open interest data, enabling detailed analysis of how open interest changes over short time frames. It is essential for users who need precise and standardized information for short-term market analysis, backtesting high-frequency trading strategies, and making informed decisions based on minute-level trends in open interest.","x-extended-description-with-markdown":"The Options Historical OHLC+ Open Interest Minute endpoint provides historical OHLC (open, high, low, close) data based on open interest updates for specified options instruments on a chosen exchange, aggregated on a minute-by-minute basis. This API endpoint delivers highly granular historical open interest data, enabling detailed analysis of how open interest changes over short time frames. It is essential for users who need precise and standardized information for short-term market analysis, backtesting high-frequency trading strategies, and making informed decisions based on minute-level trends in open interest.\n\n### Use Cases\n- **High-Frequency Market Analysis**: Enables financial analysts to perform detailed high-frequency market analysis by accessing minute-by-minute aggregated OHLC data based on open interest updates.\n- **Backtesting High-Frequency Trading Strategies**: Supports traders in backtesting and refining high-frequency trading strategies using historical minute-level open interest data.\n- **Intraday Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on minute-by-minute open interest trends.\n- **Risk Management**: Assists risk managers in assessing and mitigating risk by analyzing minute-level changes in open interest and their impact on market positions.\n\n### Target Audience\n- **High-Frequency Traders**: Individuals who require detailed minute-level OHLC data based on open interest updates to make informed trading decisions based on short-term market movements.\n- **Financial Analysts**: Professionals who analyze minute-by-minute open interest trends and perform in-depth high-frequency market research using historical data.\n- **Strategy Developers**: Developers and traders who backtest and refine high-frequency trading strategies based on historical minute-level open interest data.\n- **Risk Managers**: Professionals who monitor and assess risk exposure by analyzing minute-level changes in open interest and their implications for market positions.\n\nThis endpoint is an invaluable tool for accessing historical OHLC data based on open interest updates for specified options instruments on a chosen exchange, aggregated minute-by-minute. It ensures comprehensive and accurate high-frequency analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v1_historical_open_interest_minutes","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_open_interest","x-endpoint-group-name":"Historical OHLC+ (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"okex"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241227-15000-P"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/options/v2/historical/open-interest-messages/hour":{"get":{"summary":"Updates (OI) Full Hour","description":"The Options Open Interest Message Updates Full Hour endpoint provides detailed open interest updates for specified options instruments on a chosen exchange, capturing all open interest messages that occurred within a specified hour. This API endpoint delivers comprehensive open interest data, including individual message updates with associated timestamps. It is essential for users who need to analyze open interest changes over short periods, backfill historical data, and make informed trading and investment decisions based on hourly trends.","x-extended-description-with-markdown":"The Options Open Interest Message Updates Full Hour endpoint provides detailed open interest updates for specified options instruments on a chosen exchange, capturing all open interest messages that occurred within a specified hour. This API endpoint delivers comprehensive open interest data, including individual message updates with associated timestamps. It is essential for users who need to analyze open interest changes over short periods, backfill historical data, and make informed trading and investment decisions based on hourly trends.\n\n### Use Cases\n- **Intraday Market Analysis**: Enables traders and analysts to perform detailed intraday analysis by accessing all open interest updates within a specified hour.\n- **Backfilling Historical Data**: Ideal for users who need to backfill all open interest updates from a specific hour, ensuring a complete and accurate historical dataset.\n- **Strategy Development and Adjustment**: Supports traders in developing, refining, and adjusting trading strategies using detailed hourly open interest data.\n- **Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on hourly open interest trends.\n- **Risk Management**: Assists risk managers in assessing and mitigating risk by monitoring hourly changes in open interest and their impact on market positions.\n\n### Target Audience\n- **Options Traders**: Professionals who require detailed hourly open interest updates to make informed trading decisions based on intraday market movements.\n- **Financial Analysts**: Professionals who analyze hourly open interest data to monitor trends and perform in-depth market research.\n- **Algorithmic Traders and Developers**: Utilize hourly open interest data to implement and refine automated trading strategies.\n- **Risk Managers**: Individuals focused on monitoring and mitigating risks using detailed hourly open interest updates to manage market exposure.\n- **Data Engineers and Analysts**: Those who need to backfill historical open interest data for comprehensive analysis and accurate historical records.\n\nThis endpoint is an invaluable tool for accessing all open interest updates for specified options instruments on a chosen exchange within a specified hour. It ensures comprehensive and accurate intraday analysis, facilitating informed trading decisions, optimized trading strategies, and complete historical backfill.","tags":["Options"],"operationId":"options_v2_historical_open_interest_messages_hour","x-section":"Options","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_open_interest_message","x-endpoint-group-name":"Updates (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241129-25000-P"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the open interest updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all open interest updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1724944582},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid open interest updates from the response. Invalid open interest updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid open interest updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any open interest updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v2/historical/open-interest-messages":{"get":{"summary":"Updates (OI) by Timestamp","description":"The Options Open Interest Message Updates By Timestamp endpoint provides real-time updates on open interest for specified options instruments on a chosen exchange, starting from a specified timestamp. This API endpoint delivers comprehensive and detailed open interest data, including individual message updates with associated timestamps. It is essential for users who need to stay up to date with the latest open interest changes and analyze real-time data to make informed trading and investment decisions.","x-extended-description-with-markdown":"The Options Open Interest Message Updates By Timestamp endpoint provides real-time updates on open interest for specified options instruments on a chosen exchange, starting from a specified timestamp. This API endpoint delivers comprehensive and detailed open interest data, including individual message updates with associated timestamps. It is essential for users who need to stay up to date with the latest open interest changes and analyze real-time data to make informed trading and investment decisions.\n\n### Use Cases\n- **Real-Time Market Monitoring**: Enables traders and analysts to stay up to date with the latest open interest updates, facilitating timely and informed trading decisions.\n- **Strategy Development and Adjustment**: Supports traders in developing, refining, and adjusting trading strategies using real-time open interest data.\n- **Market Research and Reporting**: Provides essential data for ongoing market research and generating real-time reports on open interest trends.\n- **Risk Management**: Assists risk managers in monitoring real-time changes in open interest to assess and mitigate risk exposure effectively.\n\n### Target Audience\n- **Options Traders**: Professionals who require up-to-the-minute open interest updates to make prompt and informed trading decisions.\n- **Financial Analysts**: Professionals who analyze real-time open interest data to monitor trends and perform continuous market analysis.\n- **Algorithmic Traders and Developers**: Utilize real-time open interest data to implement and refine automated trading strategies.\n- **Risk Managers**: Individuals focused on monitoring and mitigating risks using the latest open interest updates to manage market exposure.\n\n### Data Handling Notes\n- **Identifying the First Message Timestamp**: Use the FIRST_OPEN_INTEREST_OPTIONS_UPDATE_TIMESTAMP from the [Markets + Instruments](/documentation/data-api/options_v1_markets_instruments) endpoint to determine the timestamp of the first message for any given instrument. This establishes the starting point of your data analysis, ensuring a complete history from inception. This is the only scenario where you should not include the last_ccseq parameter in your request.\n- **Handling Identical Timestamps in Pagination**: If all returned messages share the same timestamp, refine your pagination by including both the timestamp of the last message in the after_ts parameter and its CCSEQ in the last_ccseq parameter. Always adding last_ccseq in your requests ensures seamless pagination without missing any messages.\n- **Skipping Invalid Messages**: To maintain data accuracy, there are instances where messages may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid messages. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all messages. For comprehensive data, we recommend not skipping invalid messages.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest options messages, it is not efficient for backfilling historical data or catching up on multiple days of missed messages. For backfilling, use the [Updates (OI) Full Hour](/documentation/data-api/options_v2_historical_open_interest_messages_hour) instead. This endpoint stores messages in hourly batches, which can contain up to 5 million messages per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n- **Handling Timeouts Due to Invalidated Messages**: Timeouts may occur because the system is parsing through a large number of blob files with invalidated messages before finding valid ones. To avoid this, set the skip_invalid_messages parameter to false, which allows the endpoint to return both valid and invalid messages. This will prevent the system from skipping over invalid messages, thereby avoiding unnecessary delays. You can then paginate the data using the timestamp and CCSEQ of the last invalid message, ensuring that the process continues without missing any messages or experiencing further timeouts.\n\nThis endpoint is an invaluable tool for accessing real-time open interest updates for specified options instruments on a chosen exchange, starting from a specified timestamp. It ensures comprehensive and accurate real-time analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Options"],"operationId":"options_v2_historical_open_interest_messages","x-section":"Options","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_historical_open_interest_message","x-endpoint-group-name":"Updates (OI)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTC-USD-20241129-25000-P"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest open interest message in the response","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1724944582},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid open interest updates from the response. Invalid open interest updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid open interest updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid open interest updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any open interest updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/options/v1/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"The Options Instrument Metadata endpoint provides detailed metadata about options instruments across various exchanges. This API endpoint delivers extensive information, including mappings, operational statuses, underlying assets, expiration dates, strike prices, and other relevant data. Essential for users who need comprehensive and standardized details on options instruments, it supports accurate tracking, analysis, and integration of options data within financial systems.","x-extended-description-with-markdown":"The Options Instrument Metadata endpoint provides detailed metadata about options instruments across various exchanges. This API endpoint delivers extensive information, including mappings, operational statuses, underlying assets, expiration dates, strike prices, and other relevant data. Essential for users who need comprehensive and standardized details on options instruments, it supports accurate tracking, analysis, and integration of options data within financial systems.\n\n### Use Cases\n- **Internal Data Management**: Facilitates financial institutions in managing and maintaining a complete dataset of options instruments across different exchanges.\n- **Market Analysis**: Enables analysts to perform detailed market research by providing extensive metadata on options instruments.\n- **Regulatory Compliance**: Assists compliance officers in ensuring that trading activities involving options adhere to regulatory standards.\n- **Risk Management**: Supports risk managers in assessing and mitigating risk by providing detailed information on options instruments.\n\n### Target Audience\n- **Financial Analysts and Traders**: Require detailed metadata for in-depth market analysis and informed trading decisions.\n- **Compliance Officers**: Need comprehensive metadata to monitor and ensure regulatory compliance of options trading activities.\n- **Risk Managers**: Require detailed options data to assess risk and manage exposure effectively.\n- **Financial Technology Developers**: Building applications that integrate and utilize extensive options metadata for enhanced functionality.\n\nThe Options Instrument Metadata endpoint is crucial for retrieving detailed metadata about options instruments across various exchanges. By providing comprehensive information on mappings, operational statuses, underlying assets, expiration dates, and strike prices, it supports accurate tracking, market analysis, regulatory compliance, and risk management. This endpoint is ideal for financial analysts, traders, compliance officers, risk managers, and fintech developers, offering them the detailed and standardized data necessary for effective options trading and analysis. Integrate this endpoint today to enhance your financial systems, ensure regulatory adherence, and make data-driven decisions in the options market.","tags":["Options"],"operationId":"options_v1_latest_instrument_metadata","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bullish","bybit","deribit","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"deribit"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument BTC-29MAR24-38000-P or mapped instrument BTC-USD-20240329-38000-P on deribit as an example). We return the mapped version of the instrument by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["BTC-29NOV24-25000-P","ETH-31JAN25-2500-P"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","MIGRATION","SOURCE","INTERNAL"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/markets":{"get":{"summary":"Markets (Options)","description":"This endpoint provides comprehensive information about various cryptocurrency options markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific options market, such as its available option chains, strike price intervals, expiration schedules, settlement mechanisms, implied volatility calculations, operational status, and comprehensive static metadata including exchange status, launch dates, supported option types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available options markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency options markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific options market, such as its available option chains, strike price intervals, expiration schedules, settlement mechanisms, implied volatility calculations, operational status, and comprehensive static metadata including exchange status, launch dates, supported option types, orderbook/trade integration status, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available options markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—options markets show polling/streaming flags for option chains, Greeks calculations, implied volatility surfaces, exercise mechanisms, and settlement procedures for both American and European style options.\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency options exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, volatility analysis tools, and benchmark monitoring specific to options trading environments.\n\n### Use Cases\n- **Options Strategy Development**: Enables sophisticated traders and portfolio managers to compare cryptocurrency options exchanges using quantifiable benchmark scores, available strike ranges, expiration cycles, and implied volatility characteristics, helping them identify the most suitable venues for complex options strategies like straddles, strangles, and spreads.\n- **Volatility Trading Analysis**: Volatility traders can access detailed market data including implied volatility calculation methodologies, Greeks computation methods, option chain depth, and historical volatility benchmarks to assess market sentiment and identify volatility arbitrage opportunities across different venues.\n- **Risk Management Integration**: Risk officers can examine per-exchange integration setups for options markets—whether we poll or stream option chain updates, how Greeks are calculated and updated, when options exchanges were integrated, and how many active option series are currently mapped—enabling sophisticated portfolio risk analysis and hedging strategies.\n- **Institutional Hedging Solutions**: Access to comprehensive option specifications including exercise styles (American/European), settlement procedures, margin requirements for option writing, and collateral management helps institutional investors implement sophisticated hedging strategies for their cryptocurrency portfolios.\n- **Market Making Operations**: Direct access to current and historical benchmark scores, combined with option-specific metadata like minimum tick sizes, bid-ask spread characteristics, and maker/taker fee structures for options, enables building sophisticated market making algorithms and liquidity provision strategies.\n- **Quantitative Research**: Provides comprehensive insights into options market microstructure, implied volatility surface construction, option pricing model implementations, and Greeks calculation methodologies across different cryptocurrency options exchanges.\n- **Derivatives Analytics Integration**: Developers can integrate this endpoint into options analytics platforms requiring dynamic, structured metadata about options markets, with the ability to filter for specific option types, expiration patterns, or underlying asset characteristics.\n- **Cross-Exchange Volatility Analysis**: Traders and researchers can identify volatility arbitrage opportunities by comparing implied volatility surfaces, option pricing discrepancies, and Greeks calculations across multiple options exchanges.\n\n### Target Audience\n- **Cryptocurrency Options Traders** and **Volatility Specialists** seeking detailed insights into options market infrastructure, strike price distributions, expiration cycles, and implied volatility calculation methods for informed options trading decisions and volatility strategy development.\n- **Institutional Portfolio Managers** and **Hedge Funds** requiring comprehensive understanding of option exercise mechanisms, settlement procedures, margin requirements for option writing, and collateral management systems to evaluate venues for sophisticated options-based investment strategies.\n- **Quantitative Research Teams** leveraging benchmark scores, implied volatility methodologies, Greeks calculation engines, and historical options data for building proprietary volatility models and options pricing research.\n- **Risk Management Professionals** utilizing structured access to option specifications, exercise procedures, settlement mechanisms, and margin calculation methods for options portfolio risk assessment and hedging strategy implementation.\n- **Academic Researchers** studying cryptocurrency options market development, volatility surface dynamics, option pricing efficiency, and derivatives ecosystem evolution with access to historical benchmark data and option specification timelines.\n- **Fintech Developers** building options trading platforms, volatility analysis tools, or portfolio risk management systems requiring structured options exchange metadata, contract specifications, and programmatic discovery capabilities for options chains.\n- **Market Data Vendors** and **Options Analytics Platforms** integrating comprehensive options exchange metadata to enhance their products with detailed options market infrastructure insights, volatility surface construction, and cross-venue comparison capabilities.\n- **Options Market Making Firms** using benchmark scores, liquidity metrics, fee structures, and operational metadata to evaluate venues for automated options market making strategies and cross-exchange arbitrage opportunities.\n- **Institutional Risk Officers** requiring programmatic access to option specifications, exercise procedures, margin requirements, and settlement mechanisms for regulatory reporting, risk limit management, and options portfolio oversight.\n- **Volatility Research Firms** accessing implied volatility calculation methods, historical volatility benchmarks, and options market structure data for proprietary volatility forecasting models and market sentiment analysis tools.","tags":["Deprecated"],"operationId":"options_v1_markets","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_markets","x-endpoint-group-name":"Markets (Options)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bullish","bybit","deribit","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"deribit"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_OPTIONS","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"options_v2_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v2/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about various cryptocurrency options markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying markets through the \"markets\" parameter, users can retrieve details about specific options markets, such as their available option chains, strike price intervals, expiration schedules, settlement mechanisms, implied volatility calculations, operational status, and comprehensive static metadata including exchange status, launch dates, supported option types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available options markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various cryptocurrency options markets, featuring extensive exchange metadata and derivatives-specific operational details. By specifying markets through the \"markets\" parameter, users can retrieve details about specific options markets, such as their available option chains, strike price intervals, expiration schedules, settlement mechanisms, implied volatility calculations, operational status, and comprehensive static metadata including exchange status, launch dates, supported option types, orderbook/trade integration status, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available options markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—options markets show polling/streaming flags for option chains, Greeks calculations, implied volatility surfaces, exercise mechanisms, and settlement procedures for both American and European style options.\n\nThis functionality is essential for users looking to explore and compare the characteristics and trading conditions of different cryptocurrency options exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, volatility analysis tools, and benchmark monitoring specific to options trading environments.\n\n### Use Cases\n- **Options Strategy Development**: Enables sophisticated traders and portfolio managers to compare cryptocurrency options exchanges using quantifiable benchmark scores, available strike ranges, expiration cycles, and implied volatility characteristics, helping them identify the most suitable venues for complex options strategies like straddles, strangles, and spreads.\n- **Volatility Trading Analysis**: Volatility traders can access detailed market data including implied volatility calculation methodologies, Greeks computation methods, option chain depth, and historical volatility benchmarks to assess market sentiment and identify volatility arbitrage opportunities across different venues.\n- **Risk Management Integration**: Risk officers can examine per-exchange integration setups for options markets—whether we poll or stream option chain updates, how Greeks are calculated and updated, when options exchanges were integrated, and how many active option series are currently mapped—enabling sophisticated portfolio risk analysis and hedging strategies.\n- **Institutional Hedging Solutions**: Access to comprehensive option specifications including exercise styles (American/European), settlement procedures, margin requirements for option writing, and collateral management helps institutional investors implement sophisticated hedging strategies for their cryptocurrency portfolios.\n- **Market Making Operations**: Direct access to current and historical benchmark scores, combined with option-specific metadata like minimum tick sizes, bid-ask spread characteristics, and maker/taker fee structures for options, enables building sophisticated market making algorithms and liquidity provision strategies.\n- **Quantitative Research**: Provides comprehensive insights into options market microstructure, implied volatility surface construction, option pricing model implementations, and Greeks calculation methodologies across different cryptocurrency options exchanges.\n- **Derivatives Analytics Integration**: Developers can integrate this endpoint into options analytics platforms requiring dynamic, structured metadata about options markets, with the ability to filter for specific option types, expiration patterns, or underlying asset characteristics.\n- **Cross-Exchange Volatility Analysis**: Traders and researchers can identify volatility arbitrage opportunities by comparing implied volatility surfaces, option pricing discrepancies, and Greeks calculations across multiple options exchanges.\n\n### Target Audience\n- **Cryptocurrency Options Traders** and **Volatility Specialists** seeking detailed insights into options market infrastructure, strike price distributions, expiration cycles, and implied volatility calculation methods for informed options trading decisions and volatility strategy development.\n- **Institutional Portfolio Managers** and **Hedge Funds** requiring comprehensive understanding of option exercise mechanisms, settlement procedures, margin requirements for option writing, and collateral management systems to evaluate venues for sophisticated options-based investment strategies.\n- **Quantitative Research Teams** leveraging benchmark scores, implied volatility methodologies, Greeks calculation engines, and historical options data for building proprietary volatility models and options pricing research.\n- **Risk Management Professionals** utilizing structured access to option specifications, exercise procedures, settlement mechanisms, and margin calculation methods for options portfolio risk assessment and hedging strategy implementation.\n- **Academic Researchers** studying cryptocurrency options market development, volatility surface dynamics, option pricing efficiency, and derivatives ecosystem evolution with access to historical benchmark data and option specification timelines.\n- **Fintech Developers** building options trading platforms, volatility analysis tools, or portfolio risk management systems requiring structured options exchange metadata, contract specifications, and programmatic discovery capabilities for options chains.\n- **Market Data Vendors** and **Options Analytics Platforms** integrating comprehensive options exchange metadata to enhance their products with detailed options market infrastructure insights, volatility surface construction, and cross-venue comparison capabilities.\n- **Options Market Making Firms** using benchmark scores, liquidity metrics, fee structures, and operational metadata to evaluate venues for automated options market making strategies and cross-exchange arbitrage opportunities.\n- **Institutional Risk Officers** requiring programmatic access to option specifications, exercise procedures, margin requirements, and settlement mechanisms for regulatory reporting, risk limit management, and options portfolio oversight.\n- **Volatility Research Firms** accessing implied volatility calculation methods, historical volatility benchmarks, and options market structure data for proprietary volatility forecasting models and market sentiment analysis tools.","tags":["Options"],"operationId":"options_v2_markets","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v2_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["binance","bullish","bybit","deribit","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["deribit"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_OPTIONS","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves a comprehensive dictionary of mapped instruments across one or more integrated options markets, filtered by a specified state or status. Each entry in the dictionary uses the instrument ID—standardized by our mapping team—as the key, ensuring consistency and ease of reference.","x-extended-description-with-markdown":"This endpoint retrieves a comprehensive dictionary of mapped options trading instruments across derivatives exchanges using a standardized house record methodology. Options are grouped by underlying asset, strike currency, and expiration date into unified house records, with individual put/call instruments at different strike prices mapped under each record. This approach enables systematic options chain management and cross-venue normalization of complex derivatives structures. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).\n\nThe unified options mapping schema handles the complexity of options contracts through house record grouping and standardized strike/expiration encoding, providing integration-ready metadata for building robust options data infrastructure and volatility surface construction.\n\n### Options Mapping Methodology\nThis endpoint uses a house record approach where multiple options instruments sharing the same underlying asset, strike currency, and expiration date are grouped under a unified record identifier. Individual options are then mapped using the canonical format `{UNDERLYING_CURRENCY}-{STRIKE_CURRENCY}-{EXPIRY_YYYYMMDD}-{STRIKE_PRICE}-{PUT_OR_CALL}` where PUT_OR_CALL is represented as 'P' for puts and 'C' for calls.\nThe house record structure captures common contract specifications (settlement currency, option style, index underlying) while individual instruments differentiate by strike price and option type. Examples include `BTC-USD-20230630-31000-P` for a Bitcoin put option struck at $31,000 expiring June 30, 2023, and `ETH-USD-20230309-1800-C` for an Ethereum call option struck at $1,800 expiring March 9, 2023.\n\n### Use Cases\n- **Options Chain Management**: Build normalized options data feeds with systematic chain organization, enabling efficient volatility surface construction and Greeks calculation across multiple exchanges.\n- **Volatility Trading Systems**: Implement systematic volatility strategies using standardized options mapping, strike clustering, and expiration cycle management for cross-venue arbitrage opportunities.\n- **Risk Management Platforms**: Track complex options portfolios with accurate position attribution, Greeks aggregation, and exposure calculation using unified house record methodology.\n- **Market Making Operations**: Deploy systematic liquidity provision across options markets using standardized contract identification, delta hedging, and inventory management systems.\n- **Quantitative Research**: Access clean options data for volatility surface modeling, skew analysis, and cross-asset derivatives research with consistent strike and expiration encoding.\n- **Portfolio Analytics**: Calculate precise options P&L, Greeks exposure, and risk metrics using correct underlying references, settlement currencies, and contract specifications.\n- **Trading Platform Integration**: Implement multi-venue options trading with unified contract reference, order routing, and position reconciliation across different exchange formats.\n- **Regulatory Reporting**: Generate compliant options exposure reports using canonical instrument identification and complete contract specifications for derivatives oversight.\n\n### Target Audience\n- **Options Trading Firms**: Systematic volatility traders requiring normalized options chain data for multi-venue algorithmic strategies and cross-exchange position management.\n- **Volatility Researchers**: Quantitative analysts building volatility models, surface construction algorithms, and options pricing systems requiring clean contract mapping.\n- **Risk Management Teams**: Portfolio managers needing accurate options exposure calculation, Greeks aggregation, and volatility risk tracking across venues and underlying assets.\n- **Market Data Vendors**: Data providers needing canonical options reference data for client feeds, volatility index calculation, and normalized derivatives products.\n- **Institutional Asset Managers**: Portfolio construction teams incorporating crypto options with precise Greeks exposure, volatility overlay strategies, and risk-adjusted returns.\n- **Trading Infrastructure Engineers**: Backend developers building low-latency options trading systems with deterministic contract identification, chain management, and Greeks calculation.\n- **Compliance & Operations**: Teams managing options trading operations, regulatory reporting, and cross-venue position reconciliation for complex derivatives portfolios.","tags":["Options"],"operationId":"options_v1_markets_instruments","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bullish","bybit","deribit","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"deribit"},{"name":"instruments","in":"query","description":"The mapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["ETH-USD-20250328-4800-P"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_OPTIONS","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/options/v1/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint exposes all options instruments (contracts) available across selected derivatives markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed options, complex structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated options infrastructure.","x-extended-description-with-markdown":"This endpoint exposes all options instruments (contracts) available across selected derivatives markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed options, complex structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated options infrastructure.\n\nThe endpoint supports precise metadata access via the `groups` parameter, allowing selective retrieval of contract-level data such as: BASIC, DESCRIPTION, RESOURCE_LINKS, and more. The schema design prioritizes machine-readability, making it easy to filter, categorize, and act on contract data without requiring brittle custom logic. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\n### Use Cases\n- **Options Data Infrastructure**: Automatically detect and ingest new calls, puts, and exotic options contracts across major and long-tail exchanges.\n- **Automated Trading Systems**: Power options strategies with real-time contract visibility and metadata-driven instrument handling.\n- **Risk Management**: Maintain full awareness of open positions and expirations across platforms for Greeks monitoring and rollover handling.\n- **Surveillance & Compliance**: Track complete contract catalogs for audit trail requirements, market abuse detection, and historical availability.\n- **Product Management**: Drive the search, filtering, and instrument selection experience in trading frontends and research dashboards.\n- **Quantitative Research**: Support modeling, signal extraction, and strategy calibration using normalized and enriched contract metadata.\n- **Business Intelligence**: Track competition, coverage gaps, and launch patterns across derivatives venues.\n- **Operations & Monitoring**: Provide observability pipelines with insights into available options instruments, upcoming expiries, and market-level contract drift.\n\n### Target Audience\n- **Data Engineers & Backend Developers**: Integrating options instruments into ETL systems and data lakes.\n- **Quantitative Developers & Traders**: Needing metadata-rich feeds for backtesting, alpha generation, and position handling.\n- **DevOps & Platform Reliability Teams**: Monitoring contract churn, expiration dynamics, and operational readiness.\n- **Integration & Connectivity Engineers**: Onboarding and syncing options markets across multiple exchanges.\n- **Product Owners & UX Designers**: Enhancing discoverability and relevance of derivatives instruments in end-user tools.\n- **Compliance & Risk Analysts**: Ensuring consistent visibility over regulated and unregulated options products.\n- **Customer Success & Technical Support**: Assisting users in navigating contract lifecycles, strike prices, and availability patterns.\n\n**For standardized, normalized instrument data**, consider using the [mapped options instruments endpoint](https://developers.coindesk.com/documentation/data-api/options_v1_markets_instruments) instead. This endpoint provides cleaned, deduplicated contracts with consistent naming conventions, standardized metadata, and unified symbols across exchanges—ideal for applications requiring reliable cross-exchange comparisons, historical analysis, and streamlined integration workflows. The mapping process eliminates exchange-specific quirks and data inconsistencies, making it significantly easier to build robust trading systems, analytics dashboards, and compliance reporting without handling raw exchange variations. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).","tags":["Options"],"operationId":"options_v1_markets_instruments_unmapped","x-section":"Options","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"options_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bullish","bybit","deribit","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"deribit"},{"name":"instruments","in":"query","description":"The unmapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["ETH-31JAN25-2500-P"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_OPTIONS","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v1/latest/tick":{"get":{"summary":"Instrument Latest Tick","description":"The Derivatives Index Instrument Latest Tick endpoint provides the most recent index values and other relevant data for specified index instruments on a selected market. This API endpoint delivers up-to-date index information, including the current index value and OHLC (open, high, low, close) metrics aggregated over various time intervals. Essential for real-time data retrieval, this endpoint supports accurate and timely decision-making for market participants.","x-extended-description-with-markdown":"The Derivatives Index Instrument Latest Tick endpoint provides the most recent index values and other relevant data for specified index instruments on a selected market. This API endpoint delivers up-to-date index information, including the current index value and OHLC (open, high, low, close) metrics aggregated over various time intervals. Essential for real-time data retrieval, this endpoint supports accurate and timely decision-making for market participants.\n\n### Use Cases\n- **Real-Time Trading Decisions**: Enables traders to make informed decisions based on the most recent index values and OHLC metrics.\n- **Market Monitoring and Analysis**: Provides financial analysts with up-to-date data to monitor market trends and perform in-depth analysis.\n- **Algorithmic Trading Systems**: Supports automated trading systems by providing real-time index data necessary for executing trading strategies.\n- **Risk Management**: Assists risk managers in assessing current market conditions and adjusting risk exposure based on the latest index data.\n\n### Target Audience\n- **Traders and Market Participants**: Individuals who require real-time index values and OHLC metrics to make informed trading decisions.\n- **Financial Analysts**: Professionals who analyze market trends and need the latest data for accurate market assessments.\n- **Algorithmic Traders**: Developers and traders using automated systems that rely on real-time index data for executing strategies.\n- **Risk Managers**: Professionals responsible for managing risk exposure who need current market data to adjust their strategies.\n\nThis endpoint is an essential tool for anyone requiring the latest index values and comprehensive OHLC metrics for specified instruments in the derivatives market. It ensures timely access to critical market data, facilitating informed decision-making and effective market analysis.","tags":["Derivatives Indices"],"operationId":"index_v1_latest_tick","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_latest","x-endpoint-group-name":"Latest Tick","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instruments","in":"query","description":"A comma-separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["BTCUSDT"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v1/historical/days":{"get":{"summary":"Historical OHLC+ Day","description":"The Derivatives Index Historical OHLC+ Day endpoint provides historical OHLC (open, high, low, close) data for specified index instruments on a selected market. This API endpoint delivers daily aggregated index metrics, offering a comprehensive view of historical performance. Ideal for long-term analysis, it supports thorough market research and historical data examination, essential for informed decision-making and strategic planning.","x-extended-description-with-markdown":"The Derivatives Index Historical OHLC+ Day endpoint provides historical OHLC (open, high, low, close) data for specified index instruments on a selected market. This API endpoint delivers daily aggregated index metrics, offering a comprehensive view of historical performance. Ideal for long-term analysis, it supports thorough market research and historical data examination, essential for informed decision-making and strategic planning.\n\n### Use Cases\n- **Historical Market Analysis**: Enables financial analysts to perform detailed historical market analysis by accessing daily aggregated OHLC data.\n- **Backtesting Trading Strategies**: Supports traders in backtesting and refining their trading strategies using historical index data.\n- **Market Research and Reporting**: Provides essential data for comprehensive market research and generating detailed reports on historical market performance.\n- **Investment Planning**: Assists investors in making informed long-term investment decisions by analyzing historical market trends and index performance.\n\n### Target Audience\n- **Financial Analysts**: Professionals who require historical OHLC data to analyze past market trends and perform in-depth market research.\n- **Traders and Strategy Developers**: Individuals who backtest and refine trading strategies based on historical index data.\n- **Market Researchers**: Researchers needing extensive historical data to study market behavior and generate detailed reports.\n- **Investors and Portfolio Managers**: Professionals who make long-term investment decisions and plan portfolios based on historical market performance.\n\nThis endpoint is an invaluable tool for accessing historical OHLC data for specified index instruments in the derivatives market. It ensures comprehensive and accurate historical analysis, facilitating informed decision-making and strategic planning.","tags":["Derivatives Indices"],"operationId":"index_v1_historical_days","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_historical","x-endpoint-group-name":"Historical OHLC+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"An instrument to retrieve for a specific futures indices market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTCUSDT"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/v1/historical/hours":{"get":{"summary":"Historical OHLC+ Hour","description":"The Derivatives Index Historical OHLC+ Hour endpoint offers historical OHLC (open, high, low, close) data for specified index instruments on a selected market, aggregated on an hourly basis. This API endpoint provides granular historical index metrics, enabling detailed analysis of intraday market movements. Ideal for short-term analysis and trading strategies, it supports precise market research and historical data examination, essential for making informed trading decisions and optimizing trading strategies.","x-extended-description-with-markdown":"The Derivatives Index Historical OHLC+ Hour endpoint offers historical OHLC (open, high, low, close) data for specified index instruments on a selected market, aggregated on an hourly basis. This API endpoint provides granular historical index metrics, enabling detailed analysis of intraday market movements. Ideal for short-term analysis and trading strategies, it supports precise market research and historical data examination, essential for making informed trading decisions and optimizing trading strategies.\n\n### Use Cases\n- **Intraday Market Analysis**: Enables financial analysts to perform detailed intraday market analysis by accessing hourly aggregated OHLC data.\n- **Backtesting Short-Term Trading Strategies**: Supports traders in backtesting and refining short-term trading strategies using historical hourly index data.\n- **Market Research and Reporting**: Provides essential data for comprehensive intraday market research and generating detailed reports on hourly market performance.\n- **Day Trading and Scalping**: Assists day traders and scalpers in making informed trading decisions by analyzing hourly market trends and index performance.\n\n### Target Audience\n- **Day Traders and Scalpers**: Individuals who require detailed hourly OHLC data to make informed trading decisions based on intraday market movements.\n- **Financial Analysts**: Professionals who analyze intraday market trends and perform in-depth market research using historical hourly data.\n- **Strategy Developers**: Developers and traders who backtest and refine short-term trading strategies based on historical hourly index data.\n- **Market Researchers**: Researchers needing extensive historical intraday data to study market behavior and generate detailed reports.\n\nThis endpoint is an invaluable tool for accessing hourly aggregated OHLC data for specified index instruments in the derivatives market. It ensures comprehensive and accurate intraday analysis, facilitating informed trading decisions and optimized trading strategies.","tags":["Derivatives Indices"],"operationId":"index_v1_historical_hours","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_historical","x-endpoint-group-name":"Historical OHLC+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"An instrument to retrieve for a specific futures indices market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTCUSDT"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/v1/historical/minutes":{"get":{"summary":"Historical OHLC+ Minute","description":"The Derivatives Index Historical OHLC+ Minute endpoint provides historical OHLC (open, high, low, close) data for specified index instruments on a selected market, aggregated on a minute-by-minute basis. This API endpoint offers highly granular historical index metrics, allowing for detailed analysis of minute-level market movements. Ideal for precise short-term analysis and high-frequency trading strategies, it supports comprehensive market research and historical data examination, essential for making informed trading decisions and optimizing rapid trading strategies.","x-extended-description-with-markdown":"The Derivatives Index Historical OHLC+ Minute endpoint provides historical OHLC (open, high, low, close) data for specified index instruments on a selected market, aggregated on a minute-by-minute basis. This API endpoint offers highly granular historical index metrics, allowing for detailed analysis of minute-level market movements. Ideal for precise short-term analysis and high-frequency trading strategies, it supports comprehensive market research and historical data examination, essential for making informed trading decisions and optimizing rapid trading strategies.\n\n### Use Cases\n- **High-Frequency Trading Analysis**: Enables traders to perform detailed minute-by-minute market analysis using highly granular OHLC data.\n- **Backtesting Rapid Trading Strategies**: Supports traders in backtesting and refining high-frequency trading strategies with historical minute-level index data.\n- **Intraday Market Research**: Provides essential data for in-depth intraday market research and generating detailed reports on minute-by-minute market performance.\n- **Algorithmic Trading**: Assists algorithmic traders in optimizing trading algorithms by analyzing minute-level market trends and index performance.\n\n### Target Audience\n- **High-Frequency Traders**: Individuals who require minute-level OHLC data to make rapid, informed trading decisions based on short-term market movements.\n- **Algorithmic Traders**: Developers and traders using automated systems that rely on granular minute-by-minute index data for executing high-frequency strategies.\n- **Financial Analysts**: Professionals who analyze minute-level market trends and perform detailed intraday market research.\n- **Market Researchers**: Researchers needing extensive historical minute-level data to study market behavior and generate precise reports.\n\nThis endpoint is an invaluable tool for accessing minute-level aggregated OHLC data for specified index instruments in the derivatives market. It ensures precise and accurate short-term analysis, facilitating informed trading decisions and optimized high-frequency trading strategies.","tags":["Derivatives Indices"],"operationId":"index_v1_historical_minutes","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_historical","x-endpoint-group-name":"Historical OHLC+","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"An instrument to retrieve for a specific futures indices market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTCUSDT"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_MESSAGE","MESSAGE"],"x-enum-properties-info":{}}},"example":["ID","OHLC","OHLC_MESSAGE","MESSAGE"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/index/v2/historical/messages/hour":{"get":{"summary":"Index Updates Full Hour","description":"The Derivatives Index Message Updates Full Hour endpoint provides detailed, standardized, and deduplicated index updates for a specified index instrument on a chosen exchange, returning all index updates that occurred within the specified hour. Each index update includes an individual CCSEQ (CryptoCompare Sequence) number, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is ideal for catching up on historical derivatives index updates data. If you want to stay up to date with the latest messages, it is more efficent to use the /index/v1/historical/messages endpoint.","x-extended-description-with-markdown":"The Derivatives Index Message Updates Full Hour endpoint provides detailed, standardized, and deduplicated index updates for a specified index instrument on a chosen exchange, returning all index updates that occurred within the specified hour. Each index update includes an individual CCSEQ (CryptoCompare Sequence) number, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is ideal for catching up on historical derivatives index updates data. If you want to stay up to date with the latest messages, it is more efficent to use the /index/v1/historical/messages endpoint.\n\n### Use Cases\n- **Historical Data Catch-Up**: Enables users to catch up on a full hour of tick-level index data for specified instruments, ensuring they have all necessary historical updates.\n- **Real-Time Market Monitoring**: Supports traders and analysts in accessing the most recent tick-level data to stay updated with current market conditions.\n- **Detailed Market Analysis**: Facilitates financial analysts in performing detailed intraday market analysis using every available update within a specific hour.\n- **Backtesting and Strategy Development**: Assists traders in backtesting and refining trading strategies by providing granular tick-level data for a specified hour.\n- **Data Integration and Syncing**: Helps integrate and sync detailed historical and real-time index data into financial systems and databases.\n\n### Target Audience\n- **Traders and Market Participants**: Individuals who need to catch up on detailed historical tick-level data and stay updated with the latest market information.\n- **Financial Analysts**: Professionals who analyze tick-level market trends and perform in-depth intraday market research using both historical and real-time data.\n- **System Integrators and IT Professionals**: Users who integrate detailed historical and real-time index data into financial systems and ensure data synchronization.\n- **Algorithmic Traders**: Developers and traders who backtest and refine trading algorithms using granular tick-level data for specified hours and the latest updates.\n\nThis endpoint is an invaluable resource for accessing a full hour of tick-level index data for specified instruments on chosen exchanges. It ensures comprehensive historical analysis and up-to-date market monitoring, facilitating informed trading decisions and robust data integration.","tags":["Derivatives Indices"],"operationId":"index_v2_historical_messages_hour","x-section":"Derivatives Indices","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_historical_message","x-endpoint-group-name":"Index Updates","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"An instrument to retrieve for a specific futures indices market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTCUSDT"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the index updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all index updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1674486780},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid index updates from the response. Invalid index updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid index updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid index updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any index updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/v2/historical/messages":{"get":{"summary":"Index Updates by Timestamp","description":"The Derivatives Index Message Updates by Timestamp endpoint provides detailed, standardized, and deduplicated index updates for a specified index instrument on a chosen exchange, returning index updates that occurred after the specified timestamp. Each index update includes an individual CCSEQ (CryptoCompare Sequence) number, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This API endpoint is essential for obtaining both historical and the latest messages, ensuring users can access comprehensive and detailed market data starting from a particular point in time. For users who need to catch up with all messages since the index started being calculated, it is more efficient to use the /index/v1/historical/messages/hour endpoint.","x-extended-description-with-markdown":"The Derivatives Index Message Updates by Timestamp endpoint provides detailed, standardized, and deduplicated index updates for a specified index instrument on a chosen exchange, returning index updates that occurred after the specified timestamp. Each index update includes an individual CCSEQ (CryptoCompare Sequence) number, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This API endpoint is essential for obtaining both historical and the latest messages, ensuring users can access comprehensive and detailed market data starting from a particular point in time. For users who need to catch up with all messages since the index started being calculated, it is more efficient to use the /index/v1/historical/messages/hour endpoint.\n\n### Use Cases\n- **Historical Data Retrieval**: Enables users to fetch tick-level index data starting from a specific timestamp, ensuring access to all necessary historical updates.\n- **Real-Time Market Monitoring**: Provides traders and analysts with the ability to receive the most recent tick-level data from a specified start point, staying updated with current market conditions.\n- **Detailed Market Analysis**: Assists financial analysts in performing precise market analysis using every available update from a specified timestamp.\n- **Backtesting and Strategy Development**: Supports traders in backtesting and refining trading strategies by providing granular tick-level data from a chosen start time.\n- **Data Integration and Syncing**: Facilitates the integration and syncing of detailed historical and real-time index data into financial systems and databases from a specific point in time.\n\n### Target Audience\n- **Traders and Market Participants**: Individuals who need to catch up on detailed historical tick-level data and stay updated with the latest market information starting from a specific timestamp.\n- **Financial Analysts**: Professionals who analyze market trends and perform in-depth research using both historical and real-time data from a specified start point.\n- **System Integrators and IT Professionals**: Users who integrate detailed historical and real-time index data into financial systems and ensure data synchronization starting from a particular timestamp.\n- **Algorithmic Traders**: Developers and traders who backtest and refine trading algorithms using granular tick-level data from a specified start time and the latest updates.\n\n### Data Handling Notes:\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_INDEX_UPDATE_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: If all returned index updates share the same timestamp, refine your pagination by including both the timestamp of the last index update in the after_ts parameter and its CCSEQ in the last_ccseq parameter. Always adding last_ccseq in your requests ensures seamless pagination without missing any index updates.\n- **Skipping Invalid Index Updates**: To maintain data accuracy, there are instances where index updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid index updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all index updates. For comprehensive data, we recommend not skipping invalid index updates.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest index updates, it is not efficient for backfilling historical data or catching up on multiple days of missed index updates. For backfilling, use the [Index Updates Full Hour Endpoint](/documentation/data-api/index_v2_historical_messages_hour) instead. This endpoint stores index updates in hourly batches, which can contain up to 5 million index updates per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThis endpoint is an invaluable resource for accessing tick-level index data for specified instruments on chosen exchanges, starting from a particular timestamp. It ensures comprehensive historical analysis and up-to-date market monitoring, facilitating informed trading decisions and robust data integration.","tags":["Derivatives Indices"],"operationId":"index_v2_historical_messages","x-section":"Derivatives Indices","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_historical_message","x-endpoint-group-name":"Index Updates","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instrument","in":"query","description":"An instrument to retrieve for a specific futures indices market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"BTCUSDT"},{"name":"groups","in":"query","description":"When requesting messages you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","MESSAGE"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","MESSAGE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest index message in the response","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1658622401},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of index messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid index updates from the response. Invalid index updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid index updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid index updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any index updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/index/v1/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"The Derivatives Index Instrument Metadata endpoint provides detailed metadata about index instruments from various derivatives exchanges. This API endpoint is essential for retrieving extensive information on multiple instruments, including mappings, operational statuses, and historical data. It supports comprehensive internal data management, enabling organizations to maintain and evaluate trading instruments effectively. The endpoint requires parameters such as market, instruments, and optional groups, ensuring precise and customized data retrieval for derivatives index instruments.","x-extended-description-with-markdown":"The Derivatives Index Instrument Metadata endpoint provides detailed metadata about index instruments from various derivatives exchanges. This API endpoint is essential for retrieving extensive information on multiple instruments, including mappings, operational statuses, and historical data. It supports comprehensive internal data management, enabling organizations to maintain and evaluate trading instruments effectively. The endpoint requires parameters such as market, instruments, and optional groups, ensuring precise and customized data retrieval for derivatives index instruments.\n\n### Use Cases\n- **Internal Data Management**: Critical for financial institutions that need to manage and maintain a complete dataset of index instruments from derivatives exchanges.\n- **Extensive Data Integration**: Ideal for integrating complex systems where in-depth instrument metadata is necessary for comprehensive data analysis and management.\n- **Regulatory Compliance and Reporting**: Supports compliance by providing detailed historical data and status updates required for monitoring and reporting.\n- **Market Research and Analysis**: Facilitates advanced research and analysis by offering access to extensive metadata and historical insights for backtesting and strategy development.\n\n### Target Audience\n- **Financial Data Managers**: Professionals responsible for maintaining detailed records of index instruments in financial institutions.\n- **System Integrators and IT Professionals**: Users who integrate extensive financial data systems requiring detailed metadata about each index instrument.\n- **Compliance and Regulatory Officers**: Individuals needing detailed instrument metadata for compliance, monitoring, and reporting purposes.\n- **Financial Researchers and Analysts**: Analysts who require comprehensive metadata for in-depth market research, analysis, and historical data exploration.\n\nThis endpoint is a vital resource for organizations needing exhaustive metadata about derivatives index instruments. It allows users to perform thorough analysis, maintain regulatory compliance, and integrate complex data systems effectively. For simpler data needs, other endpoints like Markets + Instruments may be more suitable, providing a streamlined subset of information.","tags":["Derivatives Indices"],"operationId":"index_v1_latest_instrument_metadata","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"binance"},{"name":"instruments","in":"query","description":"A comma-separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use an example like the instrument FI_ETHUSD_231027 for futures indices on Kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["ETHUSDT","BTCUSDT"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","MIGRATION","SOURCE","INTERNAL"],"x-enum-properties-info":{}}},"example":[]},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v1/markets":{"get":{"summary":"Markets (Derivatives Indices)","description":"This endpoint provides comprehensive information about various derivatives index markets, featuring extensive exchange metadata and index-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific derivatives index market, such as its available index instruments, volume metrics, operational status, benchmark scores, integration configurations, and comprehensive static metadata including exchange status, launch dates, supported index types, data polling/streaming capabilities, and resource links. If no specific market is indicated, the endpoint delivers data on all available derivatives index markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various derivatives index markets, featuring extensive exchange metadata and index-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific derivatives index market, such as its available index instruments, volume metrics, operational status, benchmark scores, integration configurations, and comprehensive static metadata including exchange status, launch dates, supported index types, data polling/streaming capabilities, and resource links. If no specific market is indicated, the endpoint delivers data on all available derivatives index markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, INSTRUMENT_SUMMARY, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—derivatives index markets show polling/streaming configurations for index data feeds, calculation methodologies, publication schedules, underlying asset compositions, and rebalancing procedures for various index types.\n\nThis functionality is essential for users looking to explore and compare the characteristics and operational conditions of different cryptocurrency derivatives index exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, index composition analysis, and benchmark monitoring specific to derivatives index environments.\n\n### Use Cases\n- **Index Strategy Development**: Enables sophisticated traders and portfolio managers to compare cryptocurrency derivatives index exchanges using quantifiable benchmark scores, available index compositions, rebalancing frequencies, and calculation methodologies, helping them identify the most suitable venues for index-based trading strategies and systematic investment approaches.\n- **Systematic Trading Integration**: Systematic traders can access detailed market data including index calculation methodologies, publication schedules, underlying asset weightings, and rebalancing procedures to build algorithmic trading systems that capitalize on index movements, arbitrage opportunities, and systematic investment strategies.\n- **Risk Management Integration**: Risk officers can examine per-exchange integration setups for derivatives index markets—whether we poll or stream index updates, how index values are calculated and published, when index exchanges were integrated, and how many active indices are currently tracked—enabling sophisticated portfolio risk analysis and systematic hedging strategies.\n- **Index Tracking Solutions**: Access to comprehensive index specifications including calculation methods, underlying asset compositions, rebalancing schedules, and publication frequencies helps institutional investors implement precise index tracking strategies and systematic investment approaches for their cryptocurrency portfolios.\n- **Market Making Operations**: Direct access to current and historical benchmark scores, combined with index-specific metadata like calculation intervals, publication delays, and fee structures for index data, enables building sophisticated market making algorithms and systematic liquidity provision strategies around index movements.\n- **Quantitative Research**: Provides comprehensive insights into derivatives index market infrastructure, calculation methodologies, rebalancing procedures, and underlying asset selection criteria across different cryptocurrency derivatives index exchanges for academic and proprietary research.\n- **Index Analytics Integration**: Developers can integrate this endpoint into index analytics platforms requiring dynamic, structured metadata about derivatives index markets, with the ability to filter for specific index types, calculation methods, or underlying asset characteristics.\n- **Cross-Exchange Index Analysis**: Traders and researchers can identify systematic arbitrage opportunities by comparing index calculation methods, underlying compositions, and publication schedules across multiple derivatives index exchanges.\n- **Institutional Portfolio Construction**: Portfolio managers can evaluate index methodologies, underlying asset diversification, rebalancing frequencies, and operational procedures to select appropriate index-based investment vehicles for institutional cryptocurrency exposure.\n- **Academic Index Research**: Researchers studying cryptocurrency index construction, systematic investment strategies, and derivatives market development can access comprehensive metadata about index calculation methods, underlying asset selection, and operational procedures across various exchanges.\n\n### Target Audience\n- **Cryptocurrency Index Traders** and **Systematic Investment Specialists** seeking detailed insights into derivatives index market infrastructure, calculation methodologies, underlying compositions, and rebalancing procedures for informed systematic trading decisions and index-based strategy development.\n- **Institutional Portfolio Managers** and **Systematic Investment Funds** requiring comprehensive understanding of index calculation methods, underlying asset selection, rebalancing schedules, and operational procedures to evaluate venues for systematic cryptocurrency investment strategies.\n- **Quantitative Research Teams** leveraging benchmark scores, index calculation methodologies, underlying asset compositions, and historical index data for building proprietary systematic investment models and index tracking research.\n- **Risk Management Professionals** utilizing structured access to index specifications, calculation procedures, underlying asset exposures, and rebalancing methods for systematic portfolio risk assessment and index-based hedging strategy implementation.\n- **Academic Researchers** studying cryptocurrency index development, systematic investment strategies, derivatives market evolution, and index construction methodologies with access to historical benchmark data and calculation specification timelines.\n- **Fintech Developers** building systematic trading platforms, index analytics tools, or portfolio management systems requiring structured derivatives index exchange metadata, calculation specifications, and programmatic discovery capabilities for index data.\n- **Market Data Vendors** and **Index Analytics Platforms** integrating comprehensive derivatives index exchange metadata to enhance their products with detailed index market infrastructure insights, calculation methodology analysis, and cross-venue comparison capabilities.\n- **Systematic Trading Firms** using benchmark scores, index composition metrics, calculation intervals, and operational metadata to evaluate venues for automated systematic trading strategies and cross-exchange index arbitrage opportunities.\n- **Institutional Risk Officers** requiring programmatic access to index specifications, calculation procedures, underlying asset exposures, and rebalancing methods for regulatory reporting, systematic risk limit management, and index portfolio oversight.\n- **Index Research Firms** accessing index calculation methods, underlying asset selection criteria, historical composition data, and operational procedures for proprietary systematic investment forecasting models and index construction analysis tools.","tags":["Deprecated"],"operationId":"index_v1_markets","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_markets","x-endpoint-group-name":"Markets (Derivatives Indices)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"index_v2_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v2/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about various derivatives index markets, featuring extensive exchange metadata and index-specific operational details. By specifying a markets through the \"markets\" parameter, users can retrieve details about specific derivatives index markets, such as its available index instruments, volume metrics, operational status, benchmark scores, integration configurations, and comprehensive static metadata including exchange status, launch dates, supported index types, data polling/streaming capabilities, and resource links. If no specific markets are indicated, the endpoint delivers data on all available derivatives index markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various derivatives index markets, featuring extensive exchange metadata and index-specific operational details. By specifying a markets through the \"markets\" parameter, users can retrieve details about specific derivatives index markets, such as its available index instruments, volume metrics, operational status, benchmark scores, integration configurations, and comprehensive static metadata including exchange status, launch dates, supported index types, data polling/streaming capabilities, and resource links. If no specific markets are indicated, the endpoint delivers data on all available derivatives index markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, INSTRUMENT_SUMMARY, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—derivatives index markets show polling/streaming configurations for index data feeds, calculation methodologies, publication schedules, underlying asset compositions, and rebalancing procedures for various index types.\n\nThis functionality is essential for users looking to explore and compare the characteristics and operational conditions of different cryptocurrency derivatives index exchanges or market segments, with enhanced capabilities for programmatic discovery, integration auditability, index composition analysis, and benchmark monitoring specific to derivatives index environments.\n\n### Use Cases\n- **Index Strategy Development**: Enables sophisticated traders and portfolio managers to compare cryptocurrency derivatives index exchanges using quantifiable benchmark scores, available index compositions, rebalancing frequencies, and calculation methodologies, helping them identify the most suitable venues for index-based trading strategies and systematic investment approaches.\n- **Systematic Trading Integration**: Systematic traders can access detailed market data including index calculation methodologies, publication schedules, underlying asset weightings, and rebalancing procedures to build algorithmic trading systems that capitalize on index movements, arbitrage opportunities, and systematic investment strategies.\n- **Risk Management Integration**: Risk officers can examine per-exchange integration setups for derivatives index markets—whether we poll or stream index updates, how index values are calculated and published, when index exchanges were integrated, and how many active indices are currently tracked—enabling sophisticated portfolio risk analysis and systematic hedging strategies.\n- **Index Tracking Solutions**: Access to comprehensive index specifications including calculation methods, underlying asset compositions, rebalancing schedules, and publication frequencies helps institutional investors implement precise index tracking strategies and systematic investment approaches for their cryptocurrency portfolios.\n- **Market Making Operations**: Direct access to current and historical benchmark scores, combined with index-specific metadata like calculation intervals, publication delays, and fee structures for index data, enables building sophisticated market making algorithms and systematic liquidity provision strategies around index movements.\n- **Quantitative Research**: Provides comprehensive insights into derivatives index market infrastructure, calculation methodologies, rebalancing procedures, and underlying asset selection criteria across different cryptocurrency derivatives index exchanges for academic and proprietary research.\n- **Index Analytics Integration**: Developers can integrate this endpoint into index analytics platforms requiring dynamic, structured metadata about derivatives index markets, with the ability to filter for specific index types, calculation methods, or underlying asset characteristics.\n- **Cross-Exchange Index Analysis**: Traders and researchers can identify systematic arbitrage opportunities by comparing index calculation methods, underlying compositions, and publication schedules across multiple derivatives index exchanges.\n- **Institutional Portfolio Construction**: Portfolio managers can evaluate index methodologies, underlying asset diversification, rebalancing frequencies, and operational procedures to select appropriate index-based investment vehicles for institutional cryptocurrency exposure.\n- **Academic Index Research**: Researchers studying cryptocurrency index construction, systematic investment strategies, and derivatives market development can access comprehensive metadata about index calculation methods, underlying asset selection, and operational procedures across various exchanges.\n\n### Target Audience\n- **Cryptocurrency Index Traders** and **Systematic Investment Specialists** seeking detailed insights into derivatives index market infrastructure, calculation methodologies, underlying compositions, and rebalancing procedures for informed systematic trading decisions and index-based strategy development.\n- **Institutional Portfolio Managers** and **Systematic Investment Funds** requiring comprehensive understanding of index calculation methods, underlying asset selection, rebalancing schedules, and operational procedures to evaluate venues for systematic cryptocurrency investment strategies.\n- **Quantitative Research Teams** leveraging benchmark scores, index calculation methodologies, underlying asset compositions, and historical index data for building proprietary systematic investment models and index tracking research.\n- **Risk Management Professionals** utilizing structured access to index specifications, calculation procedures, underlying asset exposures, and rebalancing methods for systematic portfolio risk assessment and index-based hedging strategy implementation.\n- **Academic Researchers** studying cryptocurrency index development, systematic investment strategies, derivatives market evolution, and index construction methodologies with access to historical benchmark data and calculation specification timelines.\n- **Fintech Developers** building systematic trading platforms, index analytics tools, or portfolio management systems requiring structured derivatives index exchange metadata, calculation specifications, and programmatic discovery capabilities for index data.\n- **Market Data Vendors** and **Index Analytics Platforms** integrating comprehensive derivatives index exchange metadata to enhance their products with detailed index market infrastructure insights, calculation methodology analysis, and cross-venue comparison capabilities.\n- **Systematic Trading Firms** using benchmark scores, index composition metrics, calculation intervals, and operational metadata to evaluate venues for automated systematic trading strategies and cross-exchange index arbitrage opportunities.\n- **Institutional Risk Officers** requiring programmatic access to index specifications, calculation procedures, underlying asset exposures, and rebalancing methods for regulatory reporting, systematic risk limit management, and index portfolio oversight.\n- **Index Research Firms** accessing index calculation methods, underlying asset selection criteria, historical composition data, and operational procedures for proprietary systematic investment forecasting models and index construction analysis tools.","tags":["Derivatives Indices"],"operationId":"index_v2_markets","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v2_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["kraken"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v1/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves comprehensive market metadata for derivative index trading venues that offer synthetic exposure to cryptocurrency baskets, volatility indices, and structured products. Unlike other instrument types, this endpoint focuses on market-level operational intelligence rather than instrument mapping, as derivative indices are passed through with their native exchange identifiers while enriching them with critical integration context and operational metadata.","x-extended-description-with-markdown":"This endpoint retrieves comprehensive market metadata for derivative index trading venues that offer synthetic exposure to cryptocurrency baskets, volatility indices, and structured products. Unlike other instrument types, this endpoint focuses on market-level operational intelligence rather than instrument mapping, as derivative indices are passed through with their native exchange identifiers while enriching them with critical integration context and operational metadata.\n\nThe unified derivative index schema provides market infrastructure insights including data polling frequencies, operational status indicators, benchmark scores, and integration maturity levels, enabling reliable access to complex synthetic instruments and structured products across specialized derivative index platforms.\n\n### Use Cases\n- **Structured Product Integration**: Build systematic access to cryptocurrency index products, volatility indices, and synthetic baskets using comprehensive market metadata and operational context.\n- **Index Replication Systems**: Implement systematic index tracking and replication strategies using market-level integration intelligence, rebalancing frequencies, and constituent data availability.\n- **Risk Management Platforms**: Monitor exposure to derivative index products with accurate market operational status, methodology transparency, and counterparty risk assessment.\n- **Quantitative Research**: Access clean derivative index data for basket analysis, volatility surface modeling, and synthetic instrument research with consistent market context.\n- **Portfolio Construction**: Incorporate cryptocurrency index exposure using systematic market selection, operational reliability scoring, and integration depth assessment.\n- **Market Making Operations**: Deploy liquidity provision for derivative index products using market-level operational intelligence and integration requirements.\n- **Compliance Monitoring**: Track derivative index exposure with comprehensive market metadata, methodology documentation, and regulatory compliance indicators.\n- **Performance Analytics**: Analyze derivative index performance with market-level context on calculation methodologies, rebalancing frequencies, and operational reliability.\n\n### Target Audience\n- **Structured Product Teams**: Portfolio managers incorporating cryptocurrency index exposure requiring market operational intelligence and integration reliability assessment.\n- **Institutional Asset Managers**: Investment teams accessing synthetic cryptocurrency exposure through derivative indices with systematic market selection and risk management.\n- **Quantitative Developers**: Engineers building derivative index integration systems requiring comprehensive market metadata and technical integration specifications.\n- **Index Providers**: Teams creating cryptocurrency index products needing competitive analysis, methodology benchmarking, and market operational intelligence.\n- **Risk Management Teams**: Portfolio managers monitoring derivative index exposure, counterparty risks, and operational dependencies across specialized venues.\n- **Market Data Vendors**: Data providers requiring derivative index market metadata for client feeds, product discovery, and normalized synthetic instrument products.\n- **Compliance Officers**: Teams managing derivative index trading operations, methodology due diligence, and regulatory reporting for synthetic instrument exposure.\n- **Trading Infrastructure Engineers**: Backend developers building derivative index trading systems with market-specific integration requirements and operational context.","tags":["Derivatives Indices"],"operationId":"index_v1_markets_instruments","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"A comma separated array of mapped futures indices instruments to retrieve on a specific market or all available futures indices crypto markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["FF_XBTUSD_231027","FI_ETHUSD_231027"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/index/v1/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint exposes all derivatives index instruments available across selected markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed index derivatives, complex structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated index derivatives infrastructure.","x-extended-description-with-markdown":"This endpoint exposes all derivatives index instruments available across selected markets, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed index derivatives, complex structures, and instruments pending normalization. The unified schema allows integration context, letting developers inspect exchange-specific contract characteristics, instrument availability, and key technical specs needed for automated index derivatives infrastructure.\n\nThe endpoint supports precise metadata access via the `groups` parameter, allowing selective retrieval of contract-level data such as: BASIC, DESCRIPTION, RESOURCE_LINKS, and more. The schema design prioritizes machine-readability, making it easy to filter, categorize, and act on contract data without requiring brittle custom logic. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\n### Use Cases\n- **Index Derivatives Data Infrastructure**: Automatically detect and ingest new index futures, options, and structured products across major and long-tail exchanges.\n- **Automated Trading Systems**: Power index derivatives strategies with real-time contract visibility and metadata-driven instrument handling.\n- **Risk Management**: Maintain full awareness of open positions and expirations across platforms for portfolio exposure monitoring and rollover handling.\n- **Surveillance & Compliance**: Track complete contract catalogs for audit trail requirements, market abuse detection, and historical availability.\n- **Product Management**: Drive the search, filtering, and instrument selection experience in trading frontends and research dashboards.\n- **Quantitative Research**: Support modeling, signal extraction, and strategy calibration using normalized and enriched contract metadata.\n- **Business Intelligence**: Track competition, coverage gaps, and launch patterns across derivatives venues.\n- **Operations & Monitoring**: Provide observability pipelines with insights into available index derivatives instruments, upcoming expiries, and market-level contract drift.\n\n### Target Audience\n- **Data Engineers & Backend Developers**: Integrating index derivatives instruments into ETL systems and data lakes.\n- **Quantitative Developers & Traders**: Needing metadata-rich feeds for backtesting, alpha generation, and position handling.\n- **DevOps & Platform Reliability Teams**: Monitoring contract churn, expiration dynamics, and operational readiness.\n- **Integration & Connectivity Engineers**: Onboarding and syncing index derivatives markets across multiple exchanges.\n- **Product Owners & UX Designers**: Enhancing discoverability and relevance of derivatives instruments in end-user tools.\n- **Compliance & Risk Analysts**: Ensuring consistent visibility over regulated and unregulated index derivatives products.\n- **Customer Success & Technical Support**: Assisting users in navigating contract lifecycles, index compositions, and availability patterns.\n\n**For standardized, normalized instrument data**, consider using the [mapped derivatives index instruments endpoint](https://developers.coindesk.com/documentation/data-api/index_v1_markets_instruments) instead. This endpoint provides cleaned, deduplicated contracts with consistent naming conventions, standardized metadata, and unified symbols across exchanges—ideal for applications requiring reliable cross-exchange comparisons, historical analysis, and streamlined integration workflows. The mapping process eliminates exchange-specific quirks and data inconsistencies, making it significantly easier to build robust trading systems, analytics dashboards, and compliance reporting without handling raw exchange variations. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).","tags":["Derivatives Indices"],"operationId":"index_v1_markets_instruments_unmapped","x-section":"Derivatives Indices","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"index_v1_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["binance","bit","bitget","bitmex","btcex","bullish","bybit","coinbaseinternational","crosstower","cryptodotcom","deribit","dydxv4","ftx","gateio","huobipro","hyperliquid","kraken","kucoin","mock","okex",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"kraken"},{"name":"instruments","in":"query","description":"A comma separated array of unmapped futures indices instruments to retrieve on a specific market or all available futures indices crypto markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["FF_XBTUSD_231027","FI_ETHUSD_231027"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/amm/latest/swap/tick":{"get":{"summary":"Latest Tick (Swap)","description":"This endpoint provides real-time swap data for selected instruments on a specified decentralized exchange (DEX) using Automated Market Maker (AMM) protocols. It delivers the most current price details and aggregated data over various time periods, including hourly, daily, weekly, monthly, and annually. This comprehensive dataset includes detailed metrics on volume, open-high-low-close (OHLC) values, and periodical changes, making it a valuable resource for tracking market trends and making informed trading decisions.","x-extended-description-with-markdown":"This endpoint provides real-time swap data for selected instruments on a specified decentralized exchange (DEX) using Automated Market Maker (AMM) protocols. It delivers the most current price details and aggregated data over various time periods, including hourly, daily, weekly, monthly, and annually. This comprehensive dataset includes detailed metrics on volume, open-high-low-close (OHLC) values, and periodical changes, making it a valuable resource for tracking market trends and making informed trading decisions.\n\n### Use Cases\n- **Real-time Trading Insights**: Obtain the latest AMM swap data for making timely and informed trading decisions.\n- **Market Analysis**: Analyze recent price changes and volume metrics to understand current market trends.\n- **Algorithmic Trading**: Integrate the latest AMM swap data into trading algorithms for automated strategies.\n- **Risk Management**: Use up-to-date market data to manage and mitigate risks in decentralized finance (DeFi) portfolios.\n- **Arbitrage Opportunities**: Identify and exploit price discrepancies across different exchanges for profit.\n\n### Target Audience\n- **DeFi Traders**: Individuals and firms actively trading in decentralized finance markets.\n- **Market Analysts**: Professionals focused on analyzing and interpreting market data.\n- **Algorithmic Traders**: Developers and quants designing automated trading strategies.\n- **Portfolio Managers**: Managers overseeing DeFi assets and making allocation decisions.\n- **Risk Managers**: Experts in identifying and mitigating financial risks in DeFi environments.\n\nThe On-Chain DEX Latest Tick Automated Market Maker (AMM) Swap endpoint is a crucial tool for DeFi traders, analysts, and developers. By delivering real-time and aggregated price and volume metrics, it supports a range of applications, including real-time trading, market analysis, algorithmic trading, risk management, and identifying arbitrage opportunities. Start using this endpoint to enhance your trading strategies, gain deeper market insights, and ensure informed decision-making. Leverage this data to build sophisticated analytics dashboards, develop trading bots, and monitor market conditions effectively. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_latest_swap_tick","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_latest_swap","x-endpoint-group-name":"Latest Tick (Swap)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument or mapped instrument). We return the mapped version of the instrument by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"}},"example":["0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2","0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc_2"]},{"name":"groups","in":"query","description":"When requesting tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","VALUE","LAST_UPDATE","LAST_ADJUSTED","LAST_PROCESSED","CURRENT_HOUR","CURRENT_DAY","CURRENT_WEEK","CURRENT_MONTH","CURRENT_YEAR","MOVING_24_HOUR","MOVING_7_DAY","MOVING_30_DAY","MOVING_90_DAY","MOVING_180_DAY","MOVING_365_DAY","LIFETIME"],"x-enum-properties-info":{}}},"example":[]},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_MARKET_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}}}}},"/onchain/v1/amm/historical/swap/days":{"get":{"summary":"Historical OHLCV+ (Swap) Day","description":"The On-Chain AMM Historical OHLCV+ (Swap) Day endpoint retrieves daily aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand historical price movements and market behavior over specific periods.","x-extended-description-with-markdown":"The On-Chain AMM Historical OHLCV+ (Swap) Day endpoint retrieves daily aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand historical price movements and market behavior over specific periods.\n\n### Use Cases\n- **Market Trend Analysis**: Investors and financial analysts can study historical price actions to identify trends, patterns, and potential market directions.\n- **Strategy Backtesting**: Traders can use historical data to backtest trading strategies to ensure they are effective under various market conditions before applying them in live trading.\n- **Academic Research**: Academics and students can analyze historical market data for research papers or projects focused on financial markets, especially in cryptocurrency.\n- **Financial Reporting**: Financial journalists and market researchers can use detailed historical data to create more insightful and accurate reports on market conditions.\n\n### Target Audience\n- **Cryptocurrency Traders**: Traders who need to analyze past market conditions to refine their trading strategies.\n- **Data Analysts and Economists**: Professionals who require detailed historical trading data for model building and economic research.\n- **Financial Institutions**: Organizations that require comprehensive market data to assess investment opportunities or risk management.\n- **Educational Institutions**: Academics and students looking for real-world data to use in courses, workshops, or research on financial markets.\n\nThe On-Chain AMM Historical OHLCV+ (Swap) Day endpoint is a vital resource for anyone involved in cryptocurrency trading, analysis, or research. By providing detailed daily candlestick data, including OHLC prices and trading volumes in both base and quote currencies, it supports a wide range of applications such as market trend analysis, strategy backtesting, academic research, and financial reporting. Start using this endpoint to gain a comprehensive understanding of historical market movements and enhance your trading strategies. Leverage this data to build robust analytics tools, develop effective trading algorithms, and produce insightful market reports. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_historical_swap_days","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_swap","x-endpoint-group-name":"Historical OHLCV+ (Swap)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_SWAP","SWAP","VOLUME"],"x-enum-properties-info":{}}},"example":[]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":5000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}}}},"/onchain/v1/amm/historical/swap/hours":{"get":{"summary":"Historical OHLCV+ (Swap) Hour","description":"The On-Chain AMM Historical OHLCV+ (Swap) Hour endpoint retrieves hourly aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand historical price movements and market behavior on an hourly basis.","x-extended-description-with-markdown":"The On-Chain AMM Historical OHLCV+ (Swap) Hour endpoint retrieves hourly aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand historical price movements and market behavior on an hourly basis.\n\n### Use Cases\n- **Intraday Market Analysis**: Investors and financial analysts can study hourly price actions to identify short-term trends, patterns, and potential market directions.\n- **High-Frequency Trading Strategy Backtesting**: Traders can use hourly historical data to backtest high-frequency trading strategies to ensure they are effective under various market conditions before applying them in live trading.\n- **Short-Term Academic Research**: Academics and students can analyze hourly market data for research papers or projects focused on intraday financial markets, especially in cryptocurrency.\n- **Intraday Financial Reporting**: Financial journalists and market researchers can use detailed hourly data to create more insightful and accurate reports on market conditions.\n\n### Target Audience\n- **Cryptocurrency Traders**: Traders who need to analyze past intraday market conditions to refine their trading strategies.\n- **Data Analysts and Economists**: Professionals who require detailed intraday trading data for model building and economic research.\n- **Financial Institutions**: Organizations that require comprehensive intraday market data to assess investment opportunities or risk management.\n- **Educational Institutions**: Academics and students looking for real-world intraday data to use in courses, workshops, or research on financial markets.\n\nThe On-Chain AMM Historical OHLCV+ (Swap) Hour endpoint is a vital resource for anyone involved in cryptocurrency trading, analysis, or research. By providing detailed hourly candlestick data, including OHLC prices and trading volumes in both base and quote currencies, it supports a wide range of applications such as intraday market analysis, high-frequency trading strategy backtesting, short-term academic research, and intraday financial reporting. Start using this endpoint to gain a comprehensive understanding of historical intraday market movements and enhance your trading strategies. Leverage this data to build robust analytics tools, develop effective high-frequency trading algorithms, and produce insightful intraday market reports. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_historical_swap_hours","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_swap","x-endpoint-group-name":"Historical OHLCV+ (Swap)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_SWAP","SWAP","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_SWAP","SWAP"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}}}},"/onchain/v1/amm/historical/swap/minutes":{"get":{"summary":"Historical OHLCV+ (Swap) Minute","description":"The On-Chain AMM Historical OHLCV+ (Swap) Minute endpoint retrieves minute-by-minute aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand very short-term historical price movements and market behavior.","x-extended-description-with-markdown":"The On-Chain AMM Historical OHLCV+ (Swap) Minute endpoint retrieves minute-by-minute aggregated candlestick data for AMM swap transactions. This data includes open, high, low, and close prices (OHLC), as well as trading volumes in both base and quote currencies for a selected instrument on a specified exchange. This endpoint is essential for traders and analysts looking to understand very short-term historical price movements and market behavior.\n\n### Use Cases\n- **High-Frequency Market Analysis**: Investors and financial analysts can study minute-by-minute price actions to identify ultra-short-term trends, patterns, and potential market directions.\n- **Algorithmic Trading Strategy Backtesting**: Traders can use minute-by-minute historical data to backtest algorithmic trading strategies to ensure they are effective under various market conditions before applying them in live trading.\n- **Granular Academic Research**: Academics and students can analyze minute-by-minute market data for research papers or projects focused on detailed financial market analysis, especially in cryptocurrency.\n- **Detailed Financial Reporting**: Financial journalists and market researchers can use detailed minute-by-minute data to create more granular and accurate reports on market conditions.\n\n### Target Audience\n- **Cryptocurrency Traders**: Traders who need to analyze very short-term market conditions to refine their trading strategies.\n- **Data Analysts and Economists**: Professionals who require detailed minute-by-minute trading data for model building and economic research.\n- **Financial Institutions**: Organizations that require comprehensive minute-by-minute market data to assess investment opportunities or risk management.\n- **Educational Institutions**: Academics and students looking for real-world minute-by-minute data to use in courses, workshops, or research on financial markets.\n\nThe On-Chain AMM Historical OHLCV+ (Swap) Minute endpoint is a vital resource for anyone involved in high-frequency cryptocurrency trading, detailed market analysis, or granular research. By providing detailed minute-by-minute candlestick data, including OHLC prices and trading volumes in both base and quote currencies, it supports a wide range of applications such as high-frequency market analysis, algorithmic trading strategy backtesting, granular academic research, and detailed financial reporting. Start using this endpoint to gain a comprehensive understanding of historical minute-by-minute market movements and enhance your trading strategies. Leverage this data to build sophisticated analytics tools, develop effective algorithmic trading algorithms, and produce granular market reports. Explore the full potential of our On-Chain DEX data to excel in the fast-paced world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_historical_swap_minutes","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_swap","x-endpoint-group-name":"Historical OHLCV+ (Swap)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","OHLC","OHLC_SWAP","SWAP","VOLUME"],"x-enum-properties-info":{}}},"example":["ID","MAPPING","OHLC","OHLC_SWAP","SWAP"]},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}}}},"/onchain/v1/amm/historical/swap-messages/hour":{"get":{"summary":"Swaps Full Hour","description":"The /onchain/v1/amm/historical/swap-messages/hour endpoint is deprecated and has been replaced by /onchain/v2/amm/historical/swap-messages/hour, which significantly improves performance by streaming data in chunks—delivering data to clients in milliseconds instead of minutes. The Invalid section has been removed to simplify the response, and invalid swaps are now controlled via the skip_invalid_messages parameter.","x-extended-description-with-markdown":"The /onchain/v1/amm/historical/swap-messages/hour endpoint is deprecated and has been replaced by /onchain/v2/amm/historical/swap-messages/hour, which significantly improves performance by streaming data in chunks—delivering data to clients in milliseconds instead of minutes. The Invalid section has been removed to simplify the response, and invalid swaps are now controlled via the skip_invalid_messages parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/amm/historical/swap-messages/hour` to `/onchain/v2/amm/historical/swap-messages/hour`.\n- **Handle Invalid Trades**: The Invalid section is no longer included. Use the `skip_invalid_messages` parameter to control inclusion of invalid swaps. Set `skip_invalid_messages=true` to exclude invalid swaps. By default, invalid swaps are included alongside valid swaps.\n- **Adjust Data Processing**: Remove any dependencies on the Invalid section in your application.\n\n\n### What's Changed and Why\n- **Faster Data Delivery**: Data is now streamed in chunks, starting almost immediately, reducing latency from up to 2 minutes to under 200 milliseconds.\n- **Simplified Response Structure**: The Invalid section has been removed to streamline data processing; invalid swaps are managed via the skip_invalid_messages parameter.\n- **Improved Performance**: Streaming reduces server load and memory usage, allowing clients to process data sooner and more efficiently.\n\n### Reason for Changes\n- **Enhance Developer Experience**: Provide faster data access and simplify response handling for more efficient development.\n- **Optimize System Resources**: Reduce server memory consumption and improve scalability to handle higher loads and more clients.\n- **Increase Reliability**: Streaming data in chunks mitigates risks of connection drops due to large payloads and ensures consistent performance.\n\nBy migrating to `/onchain/v2/amm/historical/swap-messages/hour`, you'll benefit from faster data delivery and a more efficient API tailored for high-performance applications.","tags":["Deprecated"],"operationId":"onchain_v1_amm_historical_swap_messages_hour","x-section":"Deprecated","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"v1_amm_historical_swap_message","x-endpoint-group-name":"Swaps","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting swaps you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","ADVANCED_MAPPING","SWAP"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","SWAP","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the trades you are interested in. You can pass any timestamp within an hour but we will round it down to the full hour timestamp and return all trades in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1691137139},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_amm_historical_swap_messages_hour","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v2/amm/historical/swap-messages/hour":{"get":{"summary":"Swaps Full Hour","description":"This endpoint provides detailed, standardized, and deduplicated tick-level swap data for a specified instrument on a chosen decentralized exchange (DEX), covering a specific hour. It captures every transaction executed, offering deep insights into swap activity, including price, quantity, and timestamp details. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring swap volumes, and understanding price fluctuations within the hour. This endpoint is also ideal for backfilling all swaps on an instrument from the instrument listing time to the present.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated tick-level swap data for a specified instrument on a chosen decentralized exchange (DEX), covering a specific hour. It captures every transaction executed, offering deep insights into swap activity, including price, quantity, and timestamp details. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring swap volumes, and understanding price fluctuations within the hour. This endpoint is also ideal for backfilling all swaps on an instrument from the instrument listing time to the present.\n\n### Use Cases\n- **Market Behavior Analysis**: Analysts and traders can examine tick-by-tick data to understand market behavior and trader reactions within a specific hour, crucial for developing short-term trading strategies.\n- **Event Impact Assessment**: Useful for evaluating the impact of financial news or market events on swap activity and price movements within a narrow time frame.\n- **Compliance and Monitoring**: Financial institutions can use detailed swap data for compliance reviews, market surveillance, and monitoring trading activities to detect anomalies or manipulative practices.\n- **Quantitative Research**: Academics and data scientists can utilize granular swap data for research on market microstructures, including price discovery and transaction costs.\n\n### Target Audience\n- **Financial Analysts and Traders**: Professionals who require granular data to analyze short-term market trends or to backtest trading strategies.\n- **Regulatory Bodies and Compliance Officers**: Individuals needing detailed transaction records to perform thorough market audits or investigations.\n- **Academic Researchers**: Researchers focusing on finance who require high-resolution data for empirical studies on market behaviors.\n- **Quantitative Analysts and Algorithmic Traders**: Developers and quants who develop and refine algorithms based on precise market data points.\n\nThe On-Chain AMM Swaps Full Hour endpoint is an essential tool for anyone involved in detailed market analysis, event impact assessment, compliance monitoring, or quantitative research. By providing granular, tick-level swap data for a specified hour, it supports a wide range of applications, including market behavior analysis, event impact assessment, compliance and monitoring, and quantitative research. Start using this endpoint to gain a precise understanding of swap activities and market dynamics on an hourly basis. Leverage this data to build sophisticated analytics tools, develop effective trading algorithms, and ensure compliance with regulatory standards. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v2_amm_historical_swap_messages_hour","x-section":"On-Chain DEX","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_swap_message","x-endpoint-group-name":"Swaps","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting swaps you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","ADVANCED_MAPPING","SWAP"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","SWAP","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the trades you are interested in. You can pass any timestamp within an hour but we will round it down to the full hour timestamp and return all trades in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1691137139},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid amm swaps from the response. Invalid amm swaps are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid amm swaps are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid amm swaps but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any amm swaps were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/amm/historical/swap-messages":{"get":{"summary":"Swaps By Timestamp","description":"This endpoint provides detailed, standardized, and deduplicated swap data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. It meticulously captures every swap executed, detailing each transaction's timestamp, transaction value, quantity, and associated market. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is particularly useful for users who need to analyze specific periods of swap activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest AMM swaps.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated swap data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. It meticulously captures every swap executed, detailing each transaction's timestamp, transaction value, quantity, and associated market. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is particularly useful for users who need to analyze specific periods of swap activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest AMM swaps.\n\n### Use Cases\n- **Detailed Swap Analysis**: Traders and analysts can use this data to examine swap execution at a specific moment, useful for forensic market analysis or detailed trade reconstruction.\n- **Event-Driven Strategy Development**: Useful for developing trading strategies that capitalize on reactions to news or market events, allowing traders to study the exact moment such events impact the market.\n- **Compliance and Audit Trails**: Compliance officers can utilize this detailed data to ensure trading activities meet regulatory standards, providing a clear audit trail of transactions.\n- **Academic Research**: Researchers can leverage precise, timestamped swap data to conduct studies on market microstructures or the impact of technological changes on trading patterns.\n\n### Target Audience\n- **Financial Analysts and Market Researchers**: Professionals who need precise historical data to analyze market trends or validate market hypotheses.\n- **Regulatory and Compliance Professionals**: Individuals who require detailed transaction records for monitoring and reporting purposes.\n- **Algorithmic Traders and Quantitative Analysts**: Developers and quants developing models that depend on high-frequency swap data.\n- **Academic Institutions**: Researchers and students studying financial markets, needing access to high-resolution data for research purposes.\n\n### Data Handling Notes:\n- **Identifying the First Swap Timestamp**: To accurately determine the timestamp of the first swap for any given instrument, utilize the FIRST_AMM_SWAP_ONCHAIN_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all trades returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last swap in the after_ts parameter and the CCSEQ of that swap in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any trades, capturing every transaction accurately for your analysis.\n- **Handling High Levels of Invalid Trades**: To preserve data accuracy and completeness, there are **exceptional circumstances where trades originally received may need to be marked as INVALID** due to various reasons, such as errors in exchange APIs or in our data processing. If we encounter over **50,000 invalid trades** before getting the required number of valid trades, the endpoint will stop adhering to the set limit. To effectively continue with pagination in these scenarios, evaluate the last swap recorded in the Data array and the last swap in the Invalid array. Choose the entry with the highest TIMESTAMP. If both entries share the same TIMESTAMP, prioritize the swap from the Data array. This approach ensures that pagination can proceed accurately, enabling the retrieval of the most relevant historical swap data.\n\nThe On-Chain AMM Swaps By Timestamp endpoint is an essential resource for anyone involved in detailed market analysis, trading strategy development, compliance, or academic research. By providing granular, timestamped swap data, it supports a wide range of applications, including detailed swap analysis, event-driven strategy development, compliance monitoring, and academic research. Start using this endpoint to gain a precise understanding of swap activities and market reactions. Leverage this data to build sophisticated analytics tools, develop effective trading algorithms, and ensure compliance with regulatory standards. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["Deprecated"],"operationId":"onchain_v1_amm_historical_swap_messages","x-section":"Deprecated","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"v1_amm_historical_swap_message","x-endpoint-group-name":"Swaps","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting swaps you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","ADVANCED_MAPPING","SWAP"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","SWAP","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest trade in the response.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1691137139},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of amm swap messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_amm_historical_swap_messages","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v2/amm/historical/swap-messages":{"get":{"summary":"Swaps By Timestamp","description":"This endpoint provides detailed, standardized, and deduplicated swap data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. It meticulously captures every swap executed, detailing each transaction's timestamp, transaction value, quantity, and associated market. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is particularly useful for users who need to analyze specific periods of swap activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest AMM swaps.","x-extended-description-with-markdown":"This endpoint provides detailed, standardized, and deduplicated swap data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. It meticulously captures every swap executed, detailing each transaction's timestamp, transaction value, quantity, and associated market. Each swap also includes an individual CCSEQ (CryptoCompare Sequence) number, swap side, and both received (by us) and reported (by the exchange) timestamps with nanosecond granularity. This endpoint is particularly useful for users who need to analyze specific periods of swap activity in granular detail, helping to pinpoint market reactions to events or identify trading patterns at a precise moment in time. It is ideal for users who need to stay up to date with the latest AMM swaps.\n\n### Use Cases\n- **Detailed Swap Analysis**: Traders and analysts can use this data to examine swap execution at a specific moment, useful for forensic market analysis or detailed trade reconstruction.\n- **Event-Driven Strategy Development**: Useful for developing trading strategies that capitalize on reactions to news or market events, allowing traders to study the exact moment such events impact the market.\n- **Compliance and Audit Trails**: Compliance officers can utilize this detailed data to ensure trading activities meet regulatory standards, providing a clear audit trail of transactions.\n- **Academic Research**: Researchers can leverage precise, timestamped swap data to conduct studies on market microstructures or the impact of technological changes on trading patterns.\n\n### Target Audience\n- **Financial Analysts and Market Researchers**: Professionals who need precise historical data to analyze market trends or validate market hypotheses.\n- **Regulatory and Compliance Professionals**: Individuals who require detailed transaction records for monitoring and reporting purposes.\n- **Algorithmic Traders and Quantitative Analysts**: Developers and quants developing models that depend on high-frequency swap data.\n- **Academic Institutions**: Researchers and students studying financial markets, needing access to high-resolution data for research purposes.\n\n### Data Handling Notes:\n- **Identifying the First Swap Timestamp**: To accurately determine the timestamp of the first swap for any given instrument, utilize the FIRST_AMM_SWAP_ONCHAIN_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all trades returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last swap in the after_ts parameter and the CCSEQ of that swap in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any trades, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Swaps**: To maintain data accuracy, there are instances where swaps may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid swaps. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all swaps. For comprehensive data, we recommend not skipping invalid swaps.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest swaps, it is not efficient for backfilling historical data or catching up on multiple days of missed swaps. For backfilling, use the [Swaps Full Hour Endpoint](/documentation/data-api/onchain_v2_amm_historical_swap_messages_hour) instead. This endpoint stores swaps in hourly batches, which can contain up to 5 million swaps per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThe On-Chain AMM Swaps By Timestamp endpoint is an essential resource for anyone involved in detailed market analysis, trading strategy development, compliance, or academic research. By providing granular, timestamped swap data, it supports a wide range of applications, including detailed swap analysis, event-driven strategy development, compliance monitoring, and academic research. Start using this endpoint to gain a precise understanding of swap activities and market reactions. Leverage this data to build sophisticated analytics tools, develop effective trading algorithms, and ensure compliance with regulatory standards. Explore the full potential of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v2_amm_historical_swap_messages","x-section":"On-Chain DEX","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_swap_message","x-endpoint-group-name":"Swaps","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2"},{"name":"groups","in":"query","description":"When requesting swaps you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","ADVANCED_MAPPING","SWAP"],"items":{"type":"string","enum":["ID","MAPPING","MAPPING_ADVANCED","SWAP","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest trade in the response.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1691137139},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of amm swap messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid amm swaps from the response. Invalid amm swaps are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid amm swaps are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid amm swaps but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any amm swaps were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v2/amm/historical/liquidity-update-messages/hour":{"get":{"summary":"Liquidity Updates Full Hour","description":"The On-Chain AMM Liquidity Updates Full Hour endpoint provides comprehensive, standardized, and deduplicated liquidity update data for a specified instrument on a chosen decentralized exchange (DEX), covering a specific hour. This endpoint captures every liquidity event that occurred within the hour, offering detailed insights into changes in liquidity, including mints, burns, collects, and overall liquidity shifts. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring liquidity volumes, and understanding liquidity fluctuations within the hour.","x-extended-description-with-markdown":"The On-Chain AMM Liquidity Updates Full Hour endpoint provides comprehensive, standardized, and deduplicated liquidity update data for a specified instrument on a chosen decentralized exchange (DEX), covering a specific hour. This endpoint captures every liquidity event that occurred within the hour, offering detailed insights into changes in liquidity, including mints, burns, collects, and overall liquidity shifts. It is designed for users who need to analyze market dynamics on an hourly basis, such as assessing the impact of market news or events, monitoring liquidity volumes, and understanding liquidity fluctuations within the hour.\n\n### Use Cases\n- **Hourly Market Behavior Analysis**: Analysts and traders can examine the tick-by-tick liquidity data to understand market behavior and liquidity provider reactions within a specific hour, crucial for developing short-term liquidity strategies.\n- **Event Impact Assessment**: Useful for evaluating the impact of financial news or market events on liquidity movements and changes within a narrow time frame.\n- **Compliance and Monitoring**: Financial institutions can use detailed liquidity data for compliance reviews, market surveillance, and monitoring trading activities to detect anomalies or manipulative practices.\n- **Liquidity Management**: Liquidity providers can assess hourly changes to optimize their liquidity provisioning strategies and minimize slippage.\n\n### Target Audience\n- **Financial Analysts and Traders**: Professionals who require granular data to analyze short-term market trends or to backtest trading and liquidity provisioning strategies.\n- **Regulatory Bodies and Compliance Officers**: Entities needing detailed transaction records to perform thorough market audits or investigations.\n- **Academic Researchers**: Academics focusing on finance who require high-resolution data for empirical studies on market behaviors and liquidity dynamics.\n- **Liquidity Providers**: Individuals and firms providing liquidity who need to monitor and adjust their positions based on detailed, hourly updates.\n\nThe On-Chain AMM Liquidity Updates Full Hour endpoint is a vital resource for anyone involved in market analysis, compliance monitoring, or liquidity management. By offering detailed, hourly data on liquidity events such as mints, burns, collects, and overall liquidity changes, it supports a wide range of applications including market behavior analysis, event impact assessment, compliance monitoring, and liquidity management. Start leveraging this endpoint to gain comprehensive insights into hourly liquidity updates and enhance your trading and liquidity provisioning strategies. Use this data to build advanced analytics tools, develop precise liquidity algorithms, and produce real-time market insights. Embrace the power of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v2_amm_historical_liquidity_update_messages_hour","x-section":"On-Chain DEX","x-roles-required":["free","premium"],"x-cache-length-seconds":3600,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_liquidity_update_message","x-endpoint-group-name":"Liquidity Updates","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x3041cbd36888becc7bbcbc0045e3b1f144466f5f_2"},{"name":"groups","in":"query","description":"When requesting liquidity updates you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","LIQUIDITY_UPDATE"],"items":{"type":"string","enum":["ID","MAPPING","LIQUIDITY_UPDATE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"hour_ts","in":"query","description":"Unix timestamp in seconds for the hour containing the open interest updates you are interested in. You can pass any timestamp in the hour but we will round it down to the full hour timestamp and return all open interest updates in that hour.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1686220227},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"return_404_on_empty_response","in":"query","description":"If set to false (default) then when there are no items to return, you will get a response status code of 200 and an empty JSON array or a CSV file with just the header. If set to true then when there are no items you will get a 404 status code for both JSON and CSV response_formats.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid amm liquidity updates from the response. Invalid amm liquidity updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid amm liquidity updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid amm liquidity updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any amm liquidity updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v2/amm/historical/liquidity-update-messages":{"get":{"summary":"Liquidity Updates by Timestamp","description":"The On-Chain AMM Liquidity Updates by Timestamp endpoint provides detailed, standardized, and deduplicated liquidity update data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. This endpoint meticulously captures every liquidity event executed, detailing each update's timestamp, type of liquidity event (mint, burn, collect), and associated changes in liquidity. It's particularly useful for users who need to analyze specific periods of liquidity activity in granular detail, helping to pinpoint market reactions to events or identify liquidity patterns at precise moments in time.","x-extended-description-with-markdown":"The On-Chain AMM Liquidity Updates by Timestamp endpoint provides detailed, standardized, and deduplicated liquidity update data for a specified instrument on a chosen decentralized exchange (DEX), starting from a given timestamp. This endpoint meticulously captures every liquidity event executed, detailing each update's timestamp, type of liquidity event (mint, burn, collect), and associated changes in liquidity. It's particularly useful for users who need to analyze specific periods of liquidity activity in granular detail, helping to pinpoint market reactions to events or identify liquidity patterns at precise moments in time.\n\n### Use Cases\n- **Detailed Liquidity Analysis**: Traders and analysts can use this data to examine liquidity events at specific moments, useful for forensic market analysis or detailed liquidity event reconstruction.\n- **Event-Driven Strategy Development**: Ideal for developing liquidity strategies that capitalize on reactions to news or market events, allowing traders to study the exact moment such events impact liquidity.\n- **Compliance and Audit Trails**: Compliance officers can utilize this detailed data to ensure liquidity activities meet regulatory standards, providing a clear audit trail of liquidity events.\n- **Academic Research**: Researchers can leverage precise, timestamped liquidity data to conduct studies on market microstructures or the impact of technological changes on liquidity patterns.\n\n### Target Audience\n- **Financial Analysts and Market Researchers**: Professionals who need precise historical data to analyze market trends or validate market hypotheses.\n- **Regulatory and Compliance Professionals**: Entities requiring detailed transaction records for monitoring and reporting purposes.\n- **Algorithmic Traders and Quantitative Analysts**: Developers creating models that depend on high-frequency liquidity data.\n- **Academic Institutions**: Researchers and students studying financial markets and needing access to high-resolution data for empirical research.\n\n### Data Handling Notes:\n- **Identifying the First Update Timestamp**: To accurately determine the timestamp of the first update for any given instrument, utilize the FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_TIMESTAMP provided by the Markets + Instruments endpoint. This value is essential for establishing the starting point of your data analysis and ensuring that you capture the complete history of trading activity from the onset. **This is the only time you should not be adding the last_ccseq parameter in your request**.\n- **Handling Identical Timestamps in Pagination**: In cases where all trades returned have the same timestamp, it's crucial to refine your pagination strategy to continue data retrieval efficiently. Always include both the timestamp of the last update in the after_ts parameter and the CCSEQ of that update in the last_ccseq parameter when paginating. **We strongly recommend always adding last_ccseq in your requests**, as this ensures that pagination proceeds without missing any trades, capturing every transaction accurately for your analysis.\n- **Skipping Invalid Updates**: To maintain data accuracy, there are instances where liquidity updates may be marked as INVALID due to exchange API errors or data processing issues. You can set the skip_invalid_messages parameter to true to omit these invalid updates. However, this will result in gaps in CCSEQ numbers, making it harder to confirm the receipt of all updates. For comprehensive data, we recommend not skipping invalid updates.\n- **Efficient Data Backfilling**: While this endpoint is ideal for staying up to date with the latest updates, it is not efficient for backfilling historical data or catching up on multiple days of missed updates. For backfilling, use the [Liquidity Updates Full Hour Endpoint](/documentation/data-api/onchain_v2_amm_historical_liquidity_update_messages_hour) instead. This endpoint stores updates in hourly batches, which can contain up to 5 million updates per hour. Using the real-time endpoint for backfilling is inefficient, as it would require downloading large volumes of data only to use a fraction of it.\n\nThe On-Chain AMM Liquidity Updates by Timestamp endpoint is an essential tool for anyone involved in market analysis, compliance monitoring, or liquidity management. By offering precise, timestamped data on liquidity events such as mints, burns, and collects, it supports a wide range of applications including detailed liquidity analysis, event-driven strategy development, compliance and audit trails, and academic research. Start leveraging this endpoint to gain comprehensive insights into liquidity updates and enhance your trading and liquidity strategies. Use this data to build advanced analytics tools, develop precise liquidity algorithms, and produce real-time market insights. Embrace the power of our On-Chain DEX data to excel in the dynamic world of decentralized finance.","tags":["On-Chain DEX"],"operationId":"onchain_v2_amm_historical_liquidity_update_messages","x-section":"On-Chain DEX","x-roles-required":["free","premium"],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_historical_liquidity_update_message","x-endpoint-group-name":"Liquidity Updates","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instrument","in":"query","description":"A mapped and/or unmapped instrument to retrieve for a specific market (you can use either the instrument XXBTZUSD or mapped instrument (base - quote) BTC-USD on kraken as an example). We return the mapped version of the values by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0x3041cbd36888becc7bbcbc0045e3b1f144466f5f_2"},{"name":"groups","in":"query","description":"When requesting liquidity updates you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","MAPPING","LIQUIDITY_UPDATE"],"items":{"type":"string","enum":["ID","MAPPING","LIQUIDITY_UPDATE","STATUS"],"x-enum-properties-info":{}}},"example":[]},{"name":"after_ts","in":"query","description":"Unix timestamp in seconds of the earliest open interest message in the response","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","minimum":0,"x-is-timestamp":true},"example":1698332595},{"name":"last_ccseq","in":"query","description":"The CCSEQ parameter in an API request helps paginate messages within the same second. It discards messages until it reaches the CCSEQ from the last_ccseq parameter. If starting an API integration, either omit this parameter or send 0. For subsequent requests, use the TIMESTAMP and CCSEQ from the last response in the after_ts and last_ccseq parameters respectively.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":0,"minimum":0},"example":0},{"name":"limit","in":"query","description":"The maximum number of amm liquidity update messages to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":1,"maximum":5000},"example":100},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"instrument_lookup_strategy","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}}},{"name":"skip_invalid_messages","in":"query","description":"A boolean parameter (default: false) that, when set to true, filters out invalid amm liquidity updates from the response. Invalid amm liquidity updates are those that were initially marked as valid but later found to be erroneous or incorrectly processed. By default, invalid amm liquidity updates are included to maintain continuity in the CCSEQ sequence. Setting this parameter to true will remove all the invalid amm liquidity updates but will result in gaps in the CCSEQ sequence. This will make it significantly harder to determine whether any amm liquidity updates were missed.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false},"example":false}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_DEPRECATED_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY_WITH_WARN"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/amm/latest/instrument/metadata":{"get":{"summary":"Instrument Metadata","description":"The On-Chain DEX Instrument Metadata endpoint returns key information about any given instrument(s) traded on a specified decentralized exchange (DEX). It can be used to retrieve comprehensive metadata for multiple instruments on a chosen exchange, focusing on non-price related information such as mappings, operational statuses, and historical data (first seen/last seen timestamps).","x-extended-description-with-markdown":"The On-Chain DEX Instrument Metadata endpoint returns key information about any given instrument(s) traded on a specified decentralized exchange (DEX). It can be used to retrieve comprehensive metadata for multiple instruments on a chosen exchange, focusing on non-price related information such as mappings, operational statuses, and historical data (first seen/last seen timestamps). This endpoint is designed for extensive internal analysis and integration, ensuring organizations have access to all relevant details needed for managing and evaluating trading instruments on decentralized platforms.\n\n### Use Cases\n- **Internal Data Management**: Ideal for organizations needing complete data oversight and internal record-keeping of trading instruments.\n- **Comprehensive Data Integration**: Supports complex integrations where extensive instrument metadata is crucial, far beyond basic market data.\n- **Regulatory Compliance and Reporting**: Facilitates compliance with trading regulations by providing exhaustive historical and status data necessary for reporting and monitoring.\n- **Advanced Research and Analysis**: Offers the necessary data depth for detailed market research or backtesting strategies by providing thorough historical access and status insights.\n\n### Target Audience\n- **Data Managers in Financial Institutions**: Professionals tasked with managing and maintaining a comprehensive dataset of financial instruments.\n- **System Integrators and IT Professionals**: Users who integrate and maintain financial data systems requiring extensive data about each instrument.\n- **Compliance and Regulatory Officers**: Professionals needing detailed instrument histories and status information for compliance and monitoring.\n- **Financial Researchers and Analysts**: Analysts and researchers who need deep, detailed metadata for advanced financial analysis or historical research.\n\nThe On-Chain DEX Instrument Metadata endpoint is an essential resource for organizations that require exhaustive, detailed metadata about trading instruments on decentralized exchanges. By providing comprehensive information on mappings, operational statuses, and historical data, it supports various use cases such as internal data management, complex data integrations, regulatory compliance, and advanced research. Start using this endpoint to gain a complete view of your trading instruments, ensuring you have all the necessary details for effective management and analysis. For users requiring less detailed information, consider the Markets + Instruments endpoint, which offers a more accessible view of instrument data suitable for general market analysis needs. Explore the capabilities of our On-Chain DEX Instrument Metadata endpoint to enhance your data management and compliance processes today.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_latest_instrument_metadata","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_latest_instrument_metadata","x-endpoint-group-name":"Instrument Metadata","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3"],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":2,"maxLength":30},"example":"uniswapv2"},{"name":"instruments","in":"query","description":"A comma separated array of mapped and/or unmapped instruments to retrieve for a specific market (you can use either the instrument or mapped instrument). We return the mapped version of the instrument by default.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","minItems":1,"maxItems":25,"items":{"type":"string"}},"example":["0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852_2","0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc_2"]},{"name":"groups","in":"query","description":"When requesting metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["STATUS","GENERAL","INTERNAL","MIGRATION","SOURCE"],"x-enum-properties-info":{}}},"example":[]},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Thirdly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. Lastly, UNMAPPED_INSTRUMENT is a criterion where instruments are mapped by their smart contract address with the chain id attached to the end. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL","UNMAPPED_INSTRUMENT"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence, including unmapped instruments. This ensures a comprehensive search across all matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. Useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. Provides precise identification that does not change when asset symbols are updated."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."},"UNMAPPED_INSTRUMENT":{"name":"Unmapped Instrument","description":"Matches instruments by their smart contract address with the chain ID appended to the end. This is particularly useful for instruments not yet included in the pre-established mappings."}}},"example":"ALL_OPTIONS"},{"name":"apply_mapping","in":"query","description":"Determines if provided instrument values are converted according to internal mappings. When true, values are translated (e.g., coinbase 'USDT-USDC' becomes 'USDC-USDT' and we invert the values); when false, original values are used.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}}}}},"/onchain/v1/amm/markets":{"get":{"summary":"Markets (On-Chain DEX)","description":"This endpoint provides comprehensive information about various on-chain decentralized exchange markets, featuring extensive exchange metadata and DEX-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific on-chain market, such as its supported blockchain networks, smart contract addresses, protocol type (AMM, order book, hybrid), governance structure, launch dates, audit information, operational status, and comprehensive static metadata including exchange status, supported token standards, integration configurations, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available on-chain markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various on-chain decentralized exchange markets, featuring extensive exchange metadata and DEX-specific operational details. By specifying a market through the \"market\" parameter, users can retrieve details about a specific on-chain market, such as its supported blockchain networks, smart contract addresses, protocol type (AMM, order book, hybrid), governance structure, launch dates, audit information, operational status, and comprehensive static metadata including exchange status, supported token standards, integration configurations, benchmark scores, and resource links. If no specific market is indicated, the endpoint delivers data on all available on-chain markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, SMART_CONTRACT_DETAILS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—on-chain markets show blockchain specifications, smart contract verification status, protocol architecture details, governance token information, multi-chain deployment status, and audit completion records. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and operational infrastructure of different decentralized cryptocurrency exchanges or DEX protocols, with enhanced capabilities for programmatic discovery, integration auditability, security assessment, and benchmark monitoring specific to on-chain trading environments.\n\n### Use Cases\n- **DEX Infrastructure Analysis**: Enables developers and analysts to compare decentralized exchanges using quantifiable benchmark scores, smart contract architecture details, blockchain network support, protocol specifications, and operational maturity metrics, helping them identify the most suitable DEX platforms for integration or investment analysis.\n- **Smart Contract Due Diligence**: Security teams and institutional investors can access detailed smart contract information including audit reports, verification status, governance mechanisms, multi-signature configurations, and historical security incidents to assess protocol infrastructure risks and operational security.\n- **Multi-Chain Integration Planning**: Developers building cross-chain applications can examine blockchain network support, smart contract deployments across different chains, bridge implementations, and protocol compatibility to plan multi-chain DEX integration strategies and optimize deployment architectures.\n- **Protocol Research and Comparison**: Researchers can access comprehensive DEX metadata including protocol types (AMM vs order book), governance structures, launch timelines, audit histories, and operational metrics to conduct comparative analysis of decentralized exchange architectures and market evolution.\n- **Exchange Integration Assessment**: API developers and trading platform builders can examine integration-specific metadata including data polling capabilities, WebSocket support, rate limiting, API coverage, and technical documentation quality to evaluate DEX platforms for systematic integration.\n- **Regulatory Compliance Evaluation**: Compliance teams can review governance structures, geographic restrictions, protocol decentralization metrics, audit completion status, and operational transparency measures to assess DEX platforms for institutional participation and regulatory reporting requirements.\n- **Investment Due Diligence**: Investment analysts can access fundamental protocol information including launch dates, development team credentials, audit histories, governance token economics, and operational benchmarks to evaluate DEX platforms for investment or partnership opportunities.\n- **Academic Blockchain Research**: Researchers studying decentralized exchange development, protocol governance evolution, and blockchain ecosystem growth can access structured metadata about DEX architectures, deployment timelines, and operational characteristics across multiple protocols.\n- **Security Monitoring Integration**: Security platforms can integrate DEX metadata including smart contract addresses, audit schedules, governance mechanisms, and operational status to build comprehensive monitoring systems for on-chain exchange security and operational health.\n- **Market Data Platform Development**: Data vendors can utilize comprehensive DEX metadata to enhance their platforms with detailed protocol information, enabling users to filter and compare exchanges based on technical specifications, security profiles, and operational characteristics.\n\n### Target Audience\n- **Blockchain Developers** and **DEX Integrators** seeking detailed insights into on-chain exchange infrastructure, smart contract specifications, blockchain network support, and API capabilities for informed integration decisions and technical implementation planning.\n- **Institutional Cryptocurrency Teams** and **Digital Asset Managers** requiring comprehensive understanding of DEX protocol governance, audit histories, security measures, and operational maturity to evaluate platforms for institutional trading infrastructure and custody solutions.\n- **Blockchain Security Researchers** leveraging smart contract verification data, audit reports, governance mechanisms, and operational metrics for building proprietary DEX security assessment frameworks and protocol risk analysis models.\n- **Compliance and Risk Teams** utilizing structured access to protocol governance structures, geographic restrictions, audit completion status, and operational transparency measures for regulatory assessment and institutional DEX participation evaluation.\n- **Academic Blockchain Researchers** studying decentralized exchange evolution, protocol governance development, and on-chain market infrastructure with access to historical metadata, launch timelines, and architectural specifications across multiple DEX platforms.\n- **Fintech Infrastructure Developers** building DEX aggregation platforms, portfolio management systems, or blockchain analytics tools requiring structured on-chain exchange metadata, smart contract specifications, and programmatic discovery capabilities for protocol information.\n- **Cryptocurrency Data Vendors** and **Analytics Platforms** integrating comprehensive on-chain exchange metadata to enhance their products with detailed protocol infrastructure insights, security assessment capabilities, and cross-DEX comparison tools.\n- **Investment Research Teams** using benchmark scores, audit histories, governance metrics, and operational data to evaluate DEX platforms for investment analysis, partnership opportunities, and competitive intelligence in the decentralized exchange sector.\n- **Regulatory Technology Providers** requiring programmatic access to DEX governance structures, audit trails, operational transparency metrics, and compliance implementations for building regulatory monitoring tools and institutional oversight solutions.\n- **Blockchain Infrastructure Teams** accessing multi-chain deployment data, smart contract architectures, and protocol specifications to optimize cross-chain infrastructure, bridge protocols, and interoperability solutions for decentralized exchange ecosystems.","tags":["Deprecated"],"operationId":"onchain_v1_amm_markets","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_markets","x-endpoint-group-name":"Markets (On-Chain DEX)","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"uniswapv2"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_DEX","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_amm_markets","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v2/amm/markets":{"get":{"summary":"Markets","description":"This endpoint provides comprehensive information about various on-chain decentralized exchange markets, featuring extensive exchange metadata and DEX-specific operational details. By specifying a market through the \"markets\" parameter, users can retrieve details about specific on-chain markets, such as its supported blockchain networks, smart contract addresses, protocol type (AMM, order book, hybrid), governance structure, launch dates, audit information, operational status, and comprehensive static metadata including exchange status, supported token standards, integration configurations, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available on-chain markets.","x-extended-description-with-markdown":"This endpoint provides comprehensive information about various on-chain decentralized exchange markets, featuring extensive exchange metadata and DEX-specific operational details. By specifying a market through the \"markets\" parameter, users can retrieve details about specific on-chain markets, such as its supported blockchain networks, smart contract addresses, protocol type (AMM, order book, hybrid), governance structure, launch dates, audit information, operational status, and comprehensive static metadata including exchange status, supported token standards, integration configurations, benchmark scores, and resource links. If no specific markets are indicated, the endpoint delivers data on all available on-chain markets.\n\nThe endpoint supports fine-grained data access through the `groups` parameter, allowing you to pull only the metadata you need: BASIC, DESCRIPTION, BENCHMARK, INTEGRATION_OPTIONS, RESOURCE_LINKS, SMART_CONTRACT_DETAILS, and more. This unified metadata schema provides integration-type awareness with context-sensitive fields—on-chain markets show blockchain specifications, smart contract verification status, protocol architecture details, governance token information, multi-chain deployment status, and audit completion records. You can learn more about our [exchange metadata and future plans in this blog post](https://data.coindesk.com/blogs/bringing-exchange-metadata-to-the-surface).\n\nThis functionality is essential for users looking to explore and compare the characteristics and operational infrastructure of different decentralized cryptocurrency exchanges or DEX protocols, with enhanced capabilities for programmatic discovery, integration auditability, security assessment, and benchmark monitoring specific to on-chain trading environments.\n\n### Use Cases\n- **DEX Infrastructure Analysis**: Enables developers and analysts to compare decentralized exchanges using quantifiable benchmark scores, smart contract architecture details, blockchain network support, protocol specifications, and operational maturity metrics, helping them identify the most suitable DEX platforms for integration or investment analysis.\n- **Smart Contract Due Diligence**: Security teams and institutional investors can access detailed smart contract information including audit reports, verification status, governance mechanisms, multi-signature configurations, and historical security incidents to assess protocol infrastructure risks and operational security.\n- **Multi-Chain Integration Planning**: Developers building cross-chain applications can examine blockchain network support, smart contract deployments across different chains, bridge implementations, and protocol compatibility to plan multi-chain DEX integration strategies and optimize deployment architectures.\n- **Protocol Research and Comparison**: Researchers can access comprehensive DEX metadata including protocol types (AMM vs order book), governance structures, launch timelines, audit histories, and operational metrics to conduct comparative analysis of decentralized exchange architectures and market evolution.\n- **Exchange Integration Assessment**: API developers and trading platform builders can examine integration-specific metadata including data polling capabilities, WebSocket support, rate limiting, API coverage, and technical documentation quality to evaluate DEX platforms for systematic integration.\n- **Regulatory Compliance Evaluation**: Compliance teams can review governance structures, geographic restrictions, protocol decentralization metrics, audit completion status, and operational transparency measures to assess DEX platforms for institutional participation and regulatory reporting requirements.\n- **Investment Due Diligence**: Investment analysts can access fundamental protocol information including launch dates, development team credentials, audit histories, governance token economics, and operational benchmarks to evaluate DEX platforms for investment or partnership opportunities.\n- **Academic Blockchain Research**: Researchers studying decentralized exchange development, protocol governance evolution, and blockchain ecosystem growth can access structured metadata about DEX architectures, deployment timelines, and operational characteristics across multiple protocols.\n- **Security Monitoring Integration**: Security platforms can integrate DEX metadata including smart contract addresses, audit schedules, governance mechanisms, and operational status to build comprehensive monitoring systems for on-chain exchange security and operational health.\n- **Market Data Platform Development**: Data vendors can utilize comprehensive DEX metadata to enhance their platforms with detailed protocol information, enabling users to filter and compare exchanges based on technical specifications, security profiles, and operational characteristics.\n\n### Target Audience\n- **Blockchain Developers** and **DEX Integrators** seeking detailed insights into on-chain exchange infrastructure, smart contract specifications, blockchain network support, and API capabilities for informed integration decisions and technical implementation planning.\n- **Institutional Cryptocurrency Teams** and **Digital Asset Managers** requiring comprehensive understanding of DEX protocol governance, audit histories, security measures, and operational maturity to evaluate platforms for institutional trading infrastructure and custody solutions.\n- **Blockchain Security Researchers** leveraging smart contract verification data, audit reports, governance mechanisms, and operational metrics for building proprietary DEX security assessment frameworks and protocol risk analysis models.\n- **Compliance and Risk Teams** utilizing structured access to protocol governance structures, geographic restrictions, audit completion status, and operational transparency measures for regulatory assessment and institutional DEX participation evaluation.\n- **Academic Blockchain Researchers** studying decentralized exchange evolution, protocol governance development, and on-chain market infrastructure with access to historical metadata, launch timelines, and architectural specifications across multiple DEX platforms.\n- **Fintech Infrastructure Developers** building DEX aggregation platforms, portfolio management systems, or blockchain analytics tools requiring structured on-chain exchange metadata, smart contract specifications, and programmatic discovery capabilities for protocol information.\n- **Cryptocurrency Data Vendors** and **Analytics Platforms** integrating comprehensive on-chain exchange metadata to enhance their products with detailed protocol infrastructure insights, security assessment capabilities, and cross-DEX comparison tools.\n- **Investment Research Teams** using benchmark scores, audit histories, governance metrics, and operational data to evaluate DEX platforms for investment analysis, partnership opportunities, and competitive intelligence in the decentralized exchange sector.\n- **Regulatory Technology Providers** requiring programmatic access to DEX governance structures, audit trails, operational transparency metrics, and compliance implementations for building regulatory monitoring tools and institutional oversight solutions.\n- **Blockchain Infrastructure Teams** accessing multi-chain deployment data, smart contract architectures, and protocol specifications to optimize cross-chain infrastructure, bridge protocols, and interoperability solutions for decentralized exchange ecosystems.","tags":["On-Chain DEX"],"operationId":"onchain_v2_amm_markets","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v2_amm_markets","x-endpoint-group-name":"Markets","parameters":[{"name":"markets","in":"query","description":"The exchanges to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{}}},"example":["uniswapv2"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_DEX","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_EXCHANGE_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/amm/markets/instruments":{"get":{"summary":"Markets + Instruments Mapped","description":"This endpoint retrieves a comprehensive dictionary of mapped on-chain trading instruments across decentralized exchanges and automated market makers. Each entry uses a standardized format combining smart contract address and chain asset ID ({CONTRACT_ADDRESS}_{CHAIN_ASSET_ID}) to uniquely identify liquidity pools and trading pairs, enabling deterministic cross-protocol normalization and reliable reference across all on-chain venues.","x-extended-description-with-markdown":"This endpoint retrieves a comprehensive dictionary of mapped on-chain trading instruments across decentralized exchanges and automated market makers. Each entry uses a standardized format combining smart contract address and chain asset ID ({CONTRACT_ADDRESS}_{CHAIN_ASSET_ID}) to uniquely identify liquidity pools and trading pairs, enabling deterministic cross-protocol normalization and reliable reference across all on-chain venues. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).\n\nThe unified on-chain mapping schema handles the complexity of decentralized trading through smart contract identification, chain-specific asset resolution, and standardized base-quote pair mapping, providing integration-ready metadata for building robust DeFi data infrastructure with automatic liquidity pool discovery and ranking.\n\n### On-Chain Mapping Methodology\nThis endpoint uses a standardized format `{CONTRACT_ADDRESS}_{CHAIN_ASSET_ID}` to uniquely identify on-chain trading pools, where the contract address represents the specific liquidity pool and the chain asset ID identifies the blockchain network. The mapping resolves complex token relationships through base-quote pair normalization, handling wrapped tokens, stablecoins, and protocol-specific implementations with appropriate mathematical transforms.\nWhen querying by trading pair (e.g., `WETH-USDC`), the system identifies all matching pools across protocols and returns the most active pool by volume or liquidity metrics, along with warnings about multiple pool matches. Transform functions handle decimal precision differences, price inversion requirements, and mathematical adjustments needed for accurate cross-protocol price normalization.\n\n### Use Cases\n- **DeFi Integration Platforms**: Build normalized on-chain data feeds with consistent pool identification across all major DEXs, AMMs, and liquidity protocols, handling complex token mappings and mathematical transforms.\n- **Cross-Protocol Arbitrage**: Enable systematic price comparison and arbitrage detection across decentralized venues using canonical pool mapping and real-time liquidity depth analysis.\n- **Liquidity Analytics**: Track pool performance, volume trends, and liquidity migration patterns using standardized pool identification and historical depth tracking across protocols.\n- **Portfolio Management**: Implement DeFi position tracking with accurate LP token valuation, impermanent loss calculation, and yield farming analytics using correct pool references.\n- **MEV and Trading Bots**: Deploy systematic trading strategies across DEXs using unified pool discovery, optimal routing calculation, and cross-protocol slippage analysis.\n- **Risk Management Systems**: Monitor on-chain exposure and counterparty risk through standardized pool mapping, protocol identification, and liquidity concentration metrics.\n- **Market Making Operations**: Implement automated liquidity provision across multiple AMMs using unified pool interfaces, inventory management, and cross-protocol yield optimization.\n- **Research and Analytics**: Access clean DeFi data for protocol analysis, tokenomics research, and decentralized market microstructure studies with consistent pool categorization.\n\n### Target Audience\n- **DeFi Protocol Developers**: Teams building cross-protocol applications, aggregators, and yield optimization platforms requiring standardized pool identification and routing logic.\n- **Quantitative Researchers**: Analysts studying DeFi market dynamics, AMM mechanics, and cross-protocol arbitrage opportunities using normalized on-chain data.\n- **Institutional DeFi Teams**: Asset managers incorporating decentralized trading with systematic pool discovery, liquidity analysis, and cross-protocol position management.\n- **MEV Searchers and Arbitrageurs**: Traders requiring real-time pool mapping, optimal routing calculation, and cross-DEX opportunity identification for automated strategies.\n- **Market Data Vendors**: Data providers needing canonical DeFi reference data for client feeds, TVL calculation, and normalized decentralized market products.\n- **Risk Management Teams**: Portfolio managers tracking DeFi exposure, protocol risks, and liquidity concentration using standardized pool identification and analytics.\n- **Trading Infrastructure Engineers**: Backend developers building DeFi trading systems with deterministic pool discovery, routing optimization, and cross-protocol integration.\n- **Compliance & Operations**: Teams managing DeFi trading operations, protocol due diligence, and cross-venue position reconciliation for decentralized derivatives.","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_markets_instruments","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"uniswapv2"},{"name":"instruments","in":"query","description":"A comma separated array of pool smart contract address and chain asset id (0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640_2), base id to quote id (306-14), and/or base symbol to quote symbol (WETH-USDC). When sending symbols or ids, we will potentially match multiple instrument id. For example, pools with different fees.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["WETH-USDC","WETH-USDT"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"instrument_lookup_strategy","in":"query","description":"The instrument_lookup_strategy parameter is crucial for defining the order in which instruments specified in the instruments parameter are matched against three distinct criteria. Firstly, MAPPED_INSTRUMENT refers to a pre-established mapping of instruments, useful for quickly identifying instruments based on the pool smart contract address and chain asset id. Secondly, BASE_ID-QUOTE_ID involves matching based on unique identifiers assigned to each element of a trading pair, offering a precise method of identification that does not change when assets change their symbols. Lastly, BASE_SYMBOL-QUOTE_SYMBOL is a criterion where instruments are matched based on their trading pair symbols. By setting the instrument_lookup_strategy, you determine which of these methods is used in the matching process.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ALL_OPTIONS","enum":["ALL_OPTIONS","MAPPED_INSTRUMENT","BASE_ID-QUOTE_ID","BASE_SYMBOL-QUOTE_SYMBOL"],"x-enum-properties-info":{"ALL_OPTIONS":{"name":"All Options","description":"Attempts to match instruments using all available strategies in sequence. This provides the broadest search scope to ensure that the instrument is found using any of the matching criteria."},"MAPPED_INSTRUMENT":{"name":"Mapped Instrument","description":"Matches instruments based on a pre-established mapping. This is particularly useful for quickly identifying instruments using the pool smart contract address and chain asset ID."},"BASE_ID-QUOTE_ID":{"name":"Base ID - Quote ID","description":"Matches instruments using unique identifiers assigned to both the base and quote assets of a trading pair. This method offers precise identification that remains consistent even when asset symbols change."},"BASE_SYMBOL-QUOTE_SYMBOL":{"name":"Base Symbol - Quote Symbol","description":"Matches instruments based on their trading pair symbols, utilizing the base and quote asset ticker symbols."}}},"example":"ALL_OPTIONS"},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_DEX","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/amm/markets/instruments/unmapped":{"get":{"summary":"Markets + Instruments Unmapped","description":"This endpoint exposes all on-chain market instruments available across selected decentralized exchanges and protocols, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed DeFi assets, liquidity pools, and instruments pending normalization. The unified schema allows integration context, letting developers inspect protocol-specific instrument characteristics, market availability, and key technical specs needed for automated DeFi infrastructure.","x-extended-description-with-markdown":"This endpoint exposes all on-chain market instruments available across selected decentralized exchanges and protocols, including both standardized and unmapped instruments. It provides raw instrument state critical for discovering newly listed DeFi assets, liquidity pools, and instruments pending normalization. The unified schema allows integration context, letting developers inspect protocol-specific instrument characteristics, market availability, and key technical specs needed for automated DeFi infrastructure.\n\nThe endpoint supports precise metadata access via the `groups` parameter, allowing selective retrieval of instrument-level data such as: BASIC, DESCRIPTION, RESOURCE_LINKS, and more. The schema design prioritizes machine-readability, making it easy to filter, categorize, and act on instrument data without requiring brittle custom logic.\n\n### Use Cases\n- **DeFi Data Infrastructure**: Automatically detect and ingest new trading pairs, liquidity pools, and synthetic assets across major and emerging protocols.\n- **Automated Trading Systems**: Power DeFi strategies with real-time instrument visibility and metadata-driven protocol handling.\n- **Risk Management**: Maintain full awareness of available instruments and smart contract risks across protocols for exposure monitoring and portfolio management.\n- **Surveillance & Compliance**: Track complete instrument catalogs for audit trail requirements, protocol analysis, and historical availability.\n- **Product Management**: Drive the search, filtering, and instrument selection experience in DeFi frontends and research dashboards.\n- **Quantitative Research**: Support modeling, signal extraction, and strategy calibration using normalized and enriched on-chain instrument metadata.\n- **Business Intelligence**: Track protocol adoption, coverage gaps, and launch patterns across decentralized venues.\n- **Operations & Monitoring**: Provide observability pipelines with insights into available on-chain instruments, liquidity changes, and protocol-level instrument drift.\n\n### Target Audience\n- **Data Engineers & Backend Developers**: Integrating on-chain instruments into ETL systems and data lakes.\n- **Quantitative Developers & Traders**: Needing metadata-rich feeds for backtesting, alpha generation, and position handling.\n- **DevOps & Platform Reliability Teams**: Monitoring protocol availability, smart contract dynamics, and operational readiness.\n- **Integration & Connectivity Engineers**: Onboarding and syncing markets across multiple DeFi protocols.\n- **Product Owners & UX Designers**: Enhancing discoverability and relevance of DeFi instruments in end-user tools.\n- **Compliance & Risk Analysts**: Ensuring consistent visibility over decentralized and protocol-based market products.\n- **Customer Success & Technical Support**: Assisting users in navigating protocol lifecycles, liquidity mechanics, and availability patterns.\n\n**For standardized, normalized instrument data**, consider using the [mapped instruments endpoint](https://developers.coindesk.com/documentation/data-api/onchain_v1_amm_markets_instruments) instead. This endpoint provides cleaned, deduplicated instruments with consistent naming conventions, standardized metadata, and unified symbols across protocols—ideal for applications requiring reliable cross-protocol comparisons, historical analysis, and streamlined integration workflows. The mapping process eliminates protocol-specific quirks and data inconsistencies, making it significantly easier to build robust trading systems, analytics dashboards, and compliance reporting without handling raw protocol variations. You can learn more about our [mapping methodology in this blog post](https://data.coindesk.com/blogs/mapping-dominance-why-it-matters-and-how-we-do-it).","tags":["On-Chain DEX"],"operationId":"onchain_v1_amm_markets_instruments_unmapped","x-section":"On-Chain DEX","x-roles-required":[],"x-cache-length-seconds":60,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_amm_markets_instrument","x-endpoint-group-name":"Markets + Instruments","parameters":[{"name":"market","in":"query","description":"The exchange to obtain data from","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["aerodromeslipstream","aerodromev1","balancerv2","curve","pancakeswapv2","pancakeswapv3","raydium","sushiswapv2","sushiswapv3","uniswapv1","uniswapv2","uniswapv3",""],"x-enum-properties-info":{},"x-visibility-roles-required-enum":{},"minLength":0,"maxLength":30},"example":"uniswapv2"},{"name":"instruments","in":"query","description":"The unmapped instruments to retrieve on a specific market or all available markets.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":25,"items":{"type":"string"}},"example":["0x517f9dd285e75b599234f7221227339478d0fcc8_2","0x3041cbd36888becc7bbcbc0045e3b1f144466f5f_2"]},{"name":"instrument_status","in":"query","description":"The instrument_status field represents the current state of an instrument, indicating whether it is actively traded (ACTIVE), excluded from use (IGNORED), no longer active but retained for historical purposes (RETIRED), no longer valid due to expiration (EXPIRED), or in a transitional phase for removal (READY_FOR_DECOMMISSIONING).","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"items":{"type":"string","enum":["ACTIVE","IGNORED","RETIRED","EXPIRED","READY_FOR_DECOMMISSIONING","RETIRED_UNMAPPED"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"groups","in":"query","description":"When requesting market metadata entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","INSTRUMENT_SUMMARY","INTERNAL","BASIC","INTEGRATION_DEX","RESOURCE_LINKS","DESCRIPTION","DESCRIPTION_SUMMARY","BENCHMARK"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_METADATA_DISPLAY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/2":{"get":{"summary":"ETH Blocks Full Processed","description":"The On-Chain ETH: Block Full Processed endpoint delivers exhaustive details on a specific Ethereum block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Ethereum block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain ETH: Block Full Processed endpoint delivers exhaustive details on a specific Ethereum block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Ethereum block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produced: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Analytics**: Analyze block transactions to gain insights into blockchain dynamics and overall network health.\n- **Forensic Research**: Investigate transactions in detail for security analysis, anomaly detection, and fraud prevention.\n- **Smart Contract Auditing**: Utilize comprehensive transaction data, logs, traces, and blobs to audit and verify smart contract behavior.\n- **Market Analysis**: Leverage detailed block data for financial analysis, trend identification, and market behavior studies.\n\n### Target Audience\n- **Blockchain Developers**: Debug and enhance smart contracts using detailed transaction data and comprehensive block information.\n- **Researchers**: Conduct in-depth studies on Ethereum blocks for academic research, investigative reporting, or technological advancements.\n- **Financial Analysts**: Utilize granular block data for informed investment decisions, risk assessment, and market research.\n- **Market Researchers**: Analyze Ethereum transactions to understand market dynamics, trends, and trading behaviors.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain ETH: Block Full Processed endpoint is an invaluable resource for accessing exhaustive and detailed information about Ethereum blocks. Whether you are a blockchain developer debugging smart contracts, a researcher conducting in-depth studies, a financial analyst making informed investment decisions, or a market researcher analyzing transaction trends, this endpoint provides the comprehensive data you need. We recommend using this endpoint for its superior documentation and structured format across multiple chains. However, if you prefer to work with the native blockchain format, we also offer a [Raw Full Block Endpoint](/documentation/data-api/onchain_v1_block_2_raw). Start leveraging the On-Chain ETH: Block Full Processed endpoint today to enhance your blockchain analytics, forensic research, smart contract auditing, and market analysis efforts.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_2","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_2","x-endpoint-group-name":"ETH Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":19501436},{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ETH_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/2/raw":{"get":{"summary":"ETH Blocks Full Raw","description":"The On-Chain ETH: Block Full Raw endpoint offers direct access to detailed information about a specific Ethereum block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Ethereum hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produced: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain ETH: Block Full Raw endpoint offers direct access to detailed information about a specific Ethereum block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Ethereum hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produced: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Development**: Access raw block data for low-level blockchain operations or custom processing tasks.\n- **Research**: Conduct studies with the most unfiltered data possible to observe the blockchain in its native state and understand its core mechanics.\n- **Data Analysis**: Perform unique analyses that require data not available in processed formats, ensuring the highest level of data fidelity.\n\n### Target Audience\n- **Blockchain Developers**: Work with unprocessed block data to meet specific, advanced development needs and create custom solutions.\n- **Academic Researchers**: Explore blockchain data at its most fundamental level for scholarly research, gaining insights from unaltered data.\n- **Data Analysts**: Leverage raw data for specialized analyses that processed data cannot support, providing deeper insights and more accurate results.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain ETH: Block Full Raw endpoint is an essential resource for accessing the most granular and unprocessed data about Ethereum blocks. Whether you are a blockchain developer requiring low-level data access, an academic researcher seeking unfiltered information, or a data analyst needing high-fidelity data for specialized analyses, this endpoint provides the raw data you need. We recommend using the [Processed Full Block Endpoint](/documentation/data-api/onchain_v1_block_2) for its superior documentation and structured format across multiple chains. However, if you prefer working with the native blockchain format and can manage potential format changes due to hard forks, the On-Chain ETH: Block Full Raw endpoint is the ideal choice for your needs. Start leveraging this endpoint today to enhance your blockchain development, research, and data analysis capabilities.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_2_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_2","x-endpoint-group-name":"ETH Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":19501436}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ETH_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/8":{"get":{"summary":"BSC Blocks Full Processed","description":"The On-Chain BSC: Block Full Processed endpoint delivers detailed information about a specific block on the BNB Smart Chain (BSC) in a meticulously processed format. This service is invaluable for developers, researchers, and users who require comprehensive, intelligible data about BSC blocks. By utilizing the 'groups' parameter, users can access the full spectrum of block data, including general information and detailed transaction data. This encompasses logs, traces, and blobs, providing a holistic view of the block's activities. The URL structure to access this endpoint is /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BSC: Block Full Processed endpoint delivers detailed information about a specific block on the BNB Smart Chain (BSC) in a meticulously processed format. This service is invaluable for developers, researchers, and users who require comprehensive, intelligible data about BSC blocks. By utilizing the 'groups' parameter, users can access the full spectrum of block data, including general information and detailed transaction data. This encompasses logs, traces, and blobs, providing a holistic view of the block's activities. The URL structure to access this endpoint is /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Analytics**: Analyze block transactions to gain insights into blockchain dynamics.\n- **Forensic Research**: Investigate transactions in detail for security and anomaly detection.\n- **Smart Contract Auditing**: Utilize transactions, logs, traces, and blobs for comprehensive contract analysis.\n- **Market Analysis**: Leverage detailed block data for financial and market trend analysis.\n\n### Target Audience\n- **Blockchain Developers**: Debug and enhance smart contracts using detailed transaction data.\n- **Researchers**: Conduct in-depth studies on BSC blocks for academic or investigative purposes.\n- **Financial Analysts**: Utilize granular block data for informed investment decisions and market research.\n- **Market Researchers**: Analyze BSC transactions to understand market dynamics and trends.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain BSC: Block Full Processed endpoint is an essential resource for anyone needing detailed and easy-to-understand data about BSC blocks. By offering a comprehensive view of block activities, including transactions, logs, traces, and blobs, this endpoint supports a wide range of use cases from blockchain analytics to smart contract auditing. Developers, researchers, and analysts can benefit from its structured and thorough data. We recommend using this endpoint for its superior documentation and structured format across multiple chains. However, if you prefer to work with the native blockchain format, we also offer a [Raw Full Block Endpoint](/documentation/data-api/onchain_v1_block_8_raw). Access it via /onchain/{version}/block/{asset_id}, and retrieve the latest block by passing -1 or leaving the block number parameter empty.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_8","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_8","x-endpoint-group-name":"BSC Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":33459930},{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BNB_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/8/raw":{"get":{"summary":"BSC Blocks Full Raw","description":"The On-Chain BSC: Block Full Raw endpoint provides detailed information about a specific block on the BNB Smart Chain (BSC) in its raw, unprocessed format. This service is particularly useful for developers, researchers, or users who require access to the most granular and unaltered data available for a given block. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BSC: Block Full Raw endpoint provides detailed information about a specific block on the BNB Smart Chain (BSC) in its raw, unprocessed format. This service is particularly useful for developers, researchers, or users who require access to the most granular and unaltered data available for a given block. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Direct Data Access**: Obtain raw block data for low-level blockchain operations or custom processing.\n- **Blockchain Development**: Utilize unprocessed block data for development tasks that require the latest blockchain information.\n- **Research and Analysis**: Perform specialized research or analysis using the most current, unmodified block data.\n\n### Target Audience\n- **Blockchain Developers**: Work with unprocessed block data for specific, advanced development needs.\n- **Researchers**: Access raw block data for academic or investigative purposes.\n- **Data Analysts**: Utilize raw transactions and logs for in-depth blockchain data analysis.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain BSC: Block Full Raw endpoint is an invaluable resource for anyone needing the most detailed and unprocessed data about BSC blocks. By providing raw, unaltered data, this endpoint supports a wide range of use cases from direct data access to in-depth research and analysis. Developers, researchers, and analysts can benefit from its granular and unprocessed data. While this raw data offers the highest fidelity, users should note that its structure might change with Binance Smart Chain hard forks. For better documentation and a consistent format across updates, consider using the [Processed Full Block Endpoint](/documentation/data-api/onchain_v1_block_8). Access it via /onchain/{version}/block/{asset_id}/raw, and retrieve the latest block by passing -1 or leaving the block number parameter empty.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_8_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_8","x-endpoint-group-name":"BSC Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":33459930}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BNB_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/1":{"get":{"summary":"BTC Blocks Full Processed","description":"The On-Chain BTC: Block Full Processed endpoint provides comprehensive details on a specific Bitcoin block in our meticulously processed format, complete with detailed explanations for each field. This endpoint is essential for developers, researchers, and users seeking the most in-depth and intelligible data concerning a Bitcoin block. By utilizing the 'groups' parameter, you can unlock the full spectrum of data, including not just general block information but also detailed transaction data. Each transaction input is linked to its previous transaction output, offering a holistic and interconnected view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BTC: Block Full Processed endpoint provides comprehensive details on a specific Bitcoin block in our meticulously processed format, complete with detailed explanations for each field. This endpoint is essential for developers, researchers, and users seeking the most in-depth and intelligible data concerning a Bitcoin block. By utilizing the 'groups' parameter, you can unlock the full spectrum of data, including not just general block information but also detailed transaction data. Each transaction input is linked to its previous transaction output, offering a holistic and interconnected view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Analytics**: Analyze block transactions to gain insights into blockchain dynamics and trends.\n- **Forensic Research**: Investigate transactions in detail for security, anomaly detection, and compliance purposes.\n- **Market Analysis**: Leverage detailed block data for financial and market trend analysis, helping to inform trading strategies and investment decisions.\n\n### Target Audience\n- **Blockchain Developers**: Use detailed and processed block data for development needs, enhancing the quality and reliability of blockchain applications.\n- **Researchers**: Conduct in-depth studies on Bitcoin blocks for academic, investigative, or technical research.\n- **Financial Analysts**: Utilize granular block data for informed investment decisions, market research, and risk assessment.\n- **Market Researchers**: Analyze Bitcoin transactions to understand market dynamics, trading behavior, and market trends.\n\n### Advantages\n- **Detailed Explanations**: Each field is accompanied by detailed explanations, making the data easy to understand and utilize.\n- **Transaction Linking**: Each transaction input is linked to its previous transaction output, providing a comprehensive view of transaction flows.\n- **Consistency Across Chains**: The processed format ensures consistent documentation and structure across multiple chains.\n- **Holistic Data View**: Access not just general block information but also detailed transaction data, logs, traces, and more.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nWe recommend using this endpoint over the raw one since it offers superior documentation and structure across multiple chains. However, we understand that this couples you to our format instead of the native blockchain one, so we also offer a [Raw Full Block Endpoint](/documentation/data-api/onchain_v1_block_1_raw) for those who need the raw, unprocessed data.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_1","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_1","x-endpoint-group-name":"BTC Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":840946},{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BTC_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/1/raw":{"get":{"summary":"BTC Blocks Full Raw","description":"The On-Chain BTC: Block Full Raw endpoint provides direct access to detailed information about a specific Bitcoin block in its raw, unprocessed format. This endpoint is particularly useful for developers, researchers, or users who require access to the most granular and unaltered data available for a given block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. Access this raw block data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BTC: Block Full Raw endpoint provides direct access to detailed information about a specific Bitcoin block in its raw, unprocessed format. This endpoint is particularly useful for developers, researchers, or users who require access to the most granular and unaltered data available for a given block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. Access this raw block data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Direct Data Access**: Quickly obtain unprocessed block data for direct analysis or integration.\n- **Blockchain Development**: Use the endpoint for development tasks that require low-level, real-time blockchain data.\n- **Research and Analysis**: Perform specialized research or analysis using the latest, unmodified block data.\n\n### Target Audience\n- **Developers**: Integrate raw block data into blockchain applications for specific, advanced development needs.\n- **Researchers**: Access unfiltered Bitcoin block data for academic or investigative research.\n- **Data Analysts**: Utilize raw data for in-depth blockchain data analysis and custom processing.\n\n### Advantages\n- **Raw and Unaltered Data**: Provides the most granular and unprocessed block data available, ideal for use cases requiring high data fidelity.\n- **Real-Time Access**: Retrieve the latest available block data for up-to-date insights and analysis.\n- **No Processing Overhead**: Receive data exactly as it exists on the blockchain, without any additional processing or formatting.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nWe recommend using the [Processed Full Block Endpoint](/documentation/data-api/onchain_v1_block_1) over this one since you will have much better documentation and structure across multiple chains. However, we understand that it couples you to our format instead of the native blockchain one. If you're concerned about potential format changes on hard forks and need the unprocessed data, this raw endpoint is the suitable choice.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_1_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_1","x-endpoint-group-name":"BTC Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":840946}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BTC_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/2410":{"get":{"summary":"BASE Blocks Full Processed","description":"The On-Chain BASE: Block Full Processed endpoint delivers exhaustive details on a specific Base block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Base block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BASE: Block Full Processed endpoint delivers exhaustive details on a specific Base block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Base block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Analytics**: Analyze block transactions to gain insights into blockchain dynamics and overall network health.\n- **Forensic Research**: Investigate transactions in detail for security analysis, anomaly detection, and fraud prevention.\n- **Smart Contract Auditing**: Utilize comprehensive transaction data, logs, traces, and blobs to audit and verify smart contract behavior.\n- **Market Analysis**: Leverage detailed block data for financial analysis, trend identification, and market behavior studies.\n\n### Target Audience\n- **Blockchain Developers**: Debug and enhance smart contracts using detailed transaction data and comprehensive block information.\n- **Researchers**: Conduct in-depth studies on Base blocks for academic research, investigative reporting, or technological advancements.\n- **Financial Analysts**: Utilize granular block data for informed investment decisions, risk assessment, and market research.\n- **Market Researchers**: Analyze Base transactions to understand market dynamics, trends, and trading behaviors.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain BASE: Block Full Processed endpoint is an invaluable resource for accessing exhaustive and detailed information about Base blocks. Whether you are a blockchain developer debugging smart contracts, a researcher conducting in-depth studies, a financial analyst making informed investment decisions, or a market researcher analyzing transaction trends, this endpoint provides the comprehensive data you need. We recommend using this endpoint for its superior documentation and structured format across multiple chains. However, if you prefer to work with the native blockchain format, we also offer a [Raw Full Block Endpoint](/documentation/data-api/onchain_v1_block_2410_raw). Start leveraging the On-Chain BASE: Block Full Processed endpoint today to enhance your blockchain analytics, forensic research, smart contract auditing, and market analysis efforts.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_2410","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_2410","x-endpoint-group-name":"BASE Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":17014740},{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BASE_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/2410/raw":{"get":{"summary":"BASE Blocks Full Raw","description":"The On-Chain BASE: Block Full Raw endpoint offers direct access to detailed information about a specific Base block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Base hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain BASE: Block Full Raw endpoint offers direct access to detailed information about a specific Base block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Base hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Development**: Access raw block data for low-level blockchain operations or custom processing tasks.\n- **Research**: Conduct studies with the most unfiltered data possible to observe the blockchain in its native state and understand its core mechanics.\n- **Data Analysis**: Perform unique analyses that require data not available in processed formats, ensuring the highest level of data fidelity.\n\n### Target Audience\n- **Blockchain Developers**: Work with unprocessed block data to meet specific, advanced development needs and create custom solutions.\n- **Academic Researchers**: Explore blockchain data at its most fundamental level for scholarly research, gaining insights from unaltered data.\n- **Data Analysts**: Leverage raw data for specialized analyses that processed data cannot support, providing deeper insights and more accurate results.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain BASE: Block Full Raw endpoint is an essential resource for accessing the most granular and unprocessed data about Base blocks. Whether you are a blockchain developer requiring low-level data access, an academic researcher seeking unfiltered information, or a data analyst needing high-fidelity data for specialized analyses, this endpoint provides the raw data you need. We recommend using the [Processed Full Block Endpoint](/documentation/data-api/onchain_v1_block_2410) for its superior documentation and structured format across multiple chains. However, if you prefer working with the native blockchain format and can manage potential format changes due to hard forks, the On-Chain BASE: Block Full Raw endpoint is the ideal choice for your needs. Start leveraging this endpoint today to enhance your blockchain development, research, and data analysis capabilities.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_2410_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_2410","x-endpoint-group-name":"BASE Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":17014740}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BASE_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/808":{"get":{"summary":"ARB Blocks Full Processed","description":"The On-Chain ARB: Block Full Processed endpoint delivers exhaustive details on a specific Arbitrum block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Arbitrum block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain ARB: Block Full Processed endpoint delivers exhaustive details on a specific Arbitrum block in a meticulously processed format, complete with detailed explanations for each field. This endpoint is crucial for developers, researchers, and users seeking the most in-depth and intelligible data concerning an Arbitrum block. By utilizing the 'groups' parameter, users can unlock the full spectrum of data, including general block information as well as detailed transaction data. This encompasses logs, traces, and blobs, offering a holistic view of the block's activities. Access this wealth of information through the URL structure: /onchain/{version}/block/{asset_id}. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Analytics**: Analyze block transactions to gain insights into blockchain dynamics and overall network health.\n- **Forensic Research**: Investigate transactions in detail for security analysis, anomaly detection, and fraud prevention.\n- **Smart Contract Auditing**: Utilize comprehensive transaction data, logs, traces, and blobs to audit and verify smart contract behavior.\n- **Market Analysis**: Leverage detailed block data for financial analysis, trend identification, and market behavior studies.\n\n### Target Audience\n- **Blockchain Developers**: Debug and enhance smart contracts using detailed transaction data and comprehensive block information.\n- **Researchers**: Conduct in-depth studies on Arbitrum blocks for academic research, investigative reporting, or technological advancements.\n- **Financial Analysts**: Utilize granular block data for informed investment decisions, risk assessment, and market research.\n- **Market Researchers**: Analyze Arbitrum transactions to understand market dynamics, trends, and trading behaviors.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain ARB: Block Full Processed endpoint is an invaluable resource for accessing exhaustive and detailed information about Arbitrum blocks. Whether you are a blockchain developer debugging smart contracts, a researcher conducting in-depth studies, a financial analyst making informed investment decisions, or a market researcher analyzing transaction trends, this endpoint provides the comprehensive data you need. We recommend using this endpoint for its superior documentation and structured format across multiple chains. However, if you prefer to work with the native blockchain format, we also offer a [Raw Full Block Endpoint](/documentation/data-api/onchain_v1_block_808_raw). Start leveraging the On-Chain ARB: Block Full Processed endpoint today to enhance your blockchain analytics, forensic research, smart contract auditing, and market analysis efforts.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_808","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_808","x-endpoint-group-name":"ARB Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":284999999},{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ARB_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/808/raw":{"get":{"summary":"ARB Blocks Full Raw","description":"The On-Chain ARB: Block Full Raw endpoint offers direct access to detailed information about a specific Arbitrum block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Arbitrum hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"The On-Chain ARB: Block Full Raw endpoint offers direct access to detailed information about a specific Arbitrum block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. However, users should be aware that this format might change with new Arbitrum hard forks, although our processed format will remain consistent across version updates. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.\n\n### Use Cases\n- **Blockchain Development**: Access raw block data for low-level blockchain operations or custom processing tasks.\n- **Research**: Conduct studies with the most unfiltered data possible to observe the blockchain in its native state and understand its core mechanics.\n- **Data Analysis**: Perform unique analyses that require data not available in processed formats, ensuring the highest level of data fidelity.\n\n### Target Audience\n- **Blockchain Developers**: Work with unprocessed block data to meet specific, advanced development needs and create custom solutions.\n- **Academic Researchers**: Explore blockchain data at its most fundamental level for scholarly research, gaining insights from unaltered data.\n- **Data Analysts**: Leverage raw data for specialized analyses that processed data cannot support, providing deeper insights and more accurate results.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**\n\nThe On-Chain ARB: Block Full Raw endpoint is an essential resource for accessing the most granular and unprocessed data about Arbitrum blocks. Whether you are a blockchain developer requiring low-level data access, an academic researcher seeking unfiltered information, or a data analyst needing high-fidelity data for specialized analyses, this endpoint provides the raw data you need. We recommend using the [Processed Full Block Endpoint](/documentation/data-api/onchain_v1_block_808) for its superior documentation and structured format across multiple chains. However, if you prefer working with the native blockchain format and can manage potential format changes due to hard forks, the On-Chain ARB: Block Full Raw endpoint is the ideal choice for your needs. Start leveraging this endpoint today to enhance your blockchain development, research, and data analysis capabilities.","tags":["On-Chain Core"],"operationId":"onchain_v1_block_808_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_808","x-endpoint-group-name":"ARB Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":284999999}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ARB_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/block/3/raw":{"get":{"summary":"SOL Blocks Full Raw","description":"Block Full Raw endpoint offers direct access to detailed information about a specific Solana block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease.","x-extended-description-with-markdown":"Block Full Raw endpoint offers direct access to detailed information about a specific Solana block in its raw, unprocessed format. This endpoint is particularly valuable for developers, researchers, or users who need the most granular and unaltered data available for a block. The 'raw' designation means this data is presented as it exists on the blockchain, without any additional processing or formatting. This can be critical for certain types of analysis or when absolute data fidelity is required. Access this raw data through the URL structure: /onchain/{version}/block/{asset_id}/raw. Passing -1 or leaving the block_number parameter empty will retrieve the latest available block. Alternatively, using a negative value for block_number will return the data relative to the block that is currently being produce: -1 for the latest available block, -2 for the block before that, and so on, allowing users to access past blocks with ease\n\n### Use Cases\n- **Blockchain Development**: Access raw block data for low-level blockchain operations or custom processing tasks.\n- **Research**: Conduct studies with the most unfiltered data possible to observe the blockchain in its native state and understand its core mechanics.\n- **Data Analysis**: Perform unique analyses that require data not available in processed formats, ensuring the highest level of data fidelity.\n\n### Target Audience\n- **Blockchain Developers**: Work with unprocessed block data to meet specific, advanced development needs and create custom solutions.\n- **Academic Researchers**: Explore blockchain data at its most fundamental level for scholarly research, gaining insights from unaltered data.\n- **Data Analysts**: Leverage raw data for specialized analyses that processed data cannot support, providing deeper insights and more accurate results.\n\nDue to high demand and the CPU-intensive nature of processing large blockchain data (blocks can reach 30MB+), we've implemented an [intelligent queueing system using worker threads](https://data.coindesk.com/blogs/on-chain-series-vii-scaling-json-processing-with-worker-threads) to maintain API responsiveness. When our processing capacity is at maximum, the API may return a 503 Service Temporarily Unavailable response with a Retry-After header indicating when to retry your request. **For dedicated access or higher rate limits, [contact our sales team](https://data.coindesk.com/company/contact).**","tags":["On-Chain Core"],"operationId":"onchain_v1_block_3_raw","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_3","x-endpoint-group-name":"SOL Blocks","parameters":[{"name":"block_number","in":"query","description":"Specifies the block number for which you want the full processed data. If set to a positive integer, it returns data for that specific block. If left empty or set to -1, it returns the latest published block data. Negative numbers are relative to the most recent block being produced: -1 refers to the latest published block, -2 to the one before that, and so on. For example if you want to say 50 blocks behind the latest published block, you would use -51 in this parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1},"example":376349348}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SOL_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v1/address/metadata/2":{"get":{"summary":"ETH Address Metadata (BETA)","description":"The On-Chain ETH Address Metadata endpoint allows users to retrieve comprehensive metrics about a specific blockchain address by providing the blockchain asset and address of interest. This endpoint delivers detailed data, including the address type (contract or wallet), first and last interaction details, transaction hashes of the first and last transactions, various supply metrics, and essential DeFi data such as address name, symbol, decimals and total supply. This information helps users understand the activities, characteristics, and attributes of the specified address on the blockchain. BETA WARNING - We know the dataset may miss some contracts and events, as traces are needed to fully capture deployments and interactions.","x-extended-description-with-markdown":"(BETA) The On-Chain ETH Address Metadata endpoint provides comprehensive information for any Ethereum address in a single API call. By supplying an Ethereum address, users can retrieve detailed data including address type (wallet or smart contract), interaction timestamps, transaction hashes of the first and last transactions, token metadata (name, symbol, decimals, total supply), and supply metrics (circulating, locked, burnt supply). This endpoint streamlines access to Ethereum address data by consolidating multiple data points into one efficient response, facilitating development, analysis, and research. BETA WARNING - We know the dataset may miss some contracts and events, as traces are needed to fully capture deployments and interactions.\n\n### (BETA) Data Handling Notes\nWe are aware of some limitations in identifying certain contracts and events. Initially, the dataset was built using transaction logs, but we realized that traces are necessary to fully capture and identify all contract deployments and interactions. This means that contracts deployed by other contracts may not be accounted for, and the metadata might miss key information such as:\n- **Internal Transactions**: Without traces, internal transactions (value transfers or interactions that occur within smart contracts) are not visible, which may result in incomplete activity data for contracts.\n- **Contract Creation by Other Contracts**: Contracts that are deployed by other contracts will not be fully identifiable, affecting the completeness of contract metadata.\n- **Event Emission**: Some events triggered within smart contracts may not be captured without traces, leading to incomplete insights into contract activities or token transfers.\n- **Failed Contract Interactions**: Failed transactions that do not emit logs, such as out-of-gas errors, may be missed without looking at traces, which could skew address activity data.\n\nWe have all the trace data and are actively regenerating the dataset in the background, but while the reprocessing is quick, we're continuously identifying and addressing new edge cases.\n\n### Use Cases\n- **Address Verification**: Quickly determine if an address is a smart contract or a wallet.\n- **Transaction Analysis**: Retrieve the first and last transaction details to study address activity over time.\n- **Token Information Retrieval**: Access essential token metadata for ERC-20 contracts, including name, symbol, decimals, and total supply.\n- **Supply Monitoring**: Analyze supply metrics to understand token distribution, including circulating, locked, and burnt supplies.\n- **DeFi Application Development**: Incorporate address and token metadata into decentralized finance platforms and services.\n- **Blockchain Research and Analytics**: Perform in-depth analyses of address behaviors and characteristics for research purposes.\n\n### Target Audiences\n- **Blockchain Developers**: Integrate comprehensive address data into applications without the need for multiple API calls.\n- **Cryptocurrency Analysts**: Gain insights into address activities and token metrics for market analysis.\n- **Data Scientists and Researchers**: Access detailed blockchain data for modeling and analytical projects.\n- **Auditors and Compliance Professionals**: Obtain accurate address information for auditing and regulatory compliance.\n- **DeFi Platform Builders**: Leverage address metadata to enhance decentralized finance services and user experiences.\n\nBy utilizing the On-Chain ETH Address Metadata endpoint, users can efficiently access vital Ethereum address information, eliminating the complexity of gathering disparate data and enabling a more streamlined workflow. This endpoint is an essential tool for anyone working with Ethereum blockchain data, facilitating detailed analyses, application development, and innovation within the blockchain ecosystem.","tags":["On-Chain Core"],"operationId":"onchain_v1_address_metadata_2","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":120,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_address_metadata_2","x-endpoint-group-name":"ETH Address","parameters":[{"name":"address","in":"query","description":"The address you are interested in","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":40,"maxLength":42},"example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},{"name":"groups","in":"query","description":"When requesting address metadata you can filter by specific groups of interest. This includes options like ID for basic identification, FIRST_INTERACTION and LAST_INTERACTION for details on the first and most recent interactions, FIRST_TRANSACTION and LAST_TRANSACTION for the initial and latest transaction hashes, TOTALS for cumulative metrics such as total transactions and volume, CONTRACT_DATA for information specific to smart contracts, and SUPPLY_DATA for metrics related to token supply management. This parameter facilitates tailored data extraction, crucial for developers, analysts, and researchers focusing on specific blockchain activities. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","FIRST_INTERACTION","LAST_INTERACTION","FIRST_TRANSACTION","LAST_TRANSACTION","TOTALS","CONTRACT_DATA","SUPPLY_DATA"],"x-enum-properties-info":{}}},"example":[]}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ETH_ADDRESS_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v3/summary/by/chain":{"get":{"summary":"Assets Summary By Chain","description":"The On-Chain Assets Summary By Chain endpoint retrieves a comprehensive summary of chain asset information for a specified blockchain, identified by its chain symbol. This endpoint provides detailed summaries of the supported assets on the given chain, including a complete list of all assets available. It is invaluable for users needing an overarching view of the asset landscape within a specific blockchain, offering insights into the diversity and characteristics of the assets supported by that chain.","x-extended-description-with-markdown":"The On-Chain Assets Summary By Chain endpoint retrieves a comprehensive summary of chain asset information for a specified blockchain, identified by its chain symbol. This endpoint provides detailed summaries of the supported assets on the given chain, including a complete list of all assets available. It is invaluable for users needing an overarching view of the asset landscape within a specific blockchain, offering insights into the diversity and characteristics of the assets supported by that chain.\n\n### Use Cases\n- **Blockchain Analysis**: Gain a detailed understanding of the asset composition and distribution within a specific blockchain, aiding in comparative analysis and blockchain selection.\n- **Investment Strategy**: Assess the variety and type of assets available on a blockchain to inform investment decisions and identify potential opportunities.\n- **Asset Management**: Manage and track supported assets within a specific blockchain for portfolio management, project development, and strategic planning.\n- **Market Research**: Conduct thorough market research on the available assets within a blockchain, providing data for reports, analysis, and trend forecasting.\n- **Regulatory Oversight**: Ensure compliance and regulatory standards are met by monitoring and reviewing the assets supported by a specific blockchain.\n\n### Target Audience\n- **Investors**: Individuals and institutions looking to evaluate the asset offerings on a blockchain to make informed investment decisions.\n- **Developers**: Blockchain developers and project managers who need to understand the asset landscape for development and integration purposes.\n- **Market Analysts**: Professionals conducting market research and analysis on blockchain assets to provide insights and forecasts.\n- **Regulatory Bodies**: Authorities overseeing compliance and regulation within the blockchain space, ensuring transparency and adherence to legal standards.\n- **Researchers**: Academic and industry researchers studying the asset diversity and characteristics within specific blockchains.\n\nThis endpoint is essential for anyone needing a comprehensive summary of assets supported by a specific blockchain. Whether you are analyzing blockchain ecosystems, making investment decisions, managing portfolios, conducting market research, or ensuring regulatory compliance, this endpoint provides the necessary data to support your activities.","tags":["On-Chain Core"],"operationId":"onchain_v3_summary_by_chain","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v3_summary_by_chain","x-endpoint-group-name":"Assets By Chain","parameters":[{"name":"chain_asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":100},"example":"ETH","x-search-dropdown-type":"asset"},{"name":"asset_lookup_priority","in":"query","description":"Use this parameter to denote whether the asset you are sending in the asset parameter should be matched against the list of asset SYMBOLS or list of CoinDesk internal asset IDS.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SUMMARY_LIST_BY_CHAIN_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v2/data/by/address":{"get":{"summary":"Asset By Address Lookup","description":"The On-Chain Asset By Address Lookup endpoint retrieves comprehensive asset information for a specific asset identified by its smart contract address and associated blockchain asset. This API endpoint is particularly useful for obtaining details about assets represented by tokens on various blockchain platforms. By specifying the smart contract address and blockchain asset, users can access detailed metadata about the asset, including its name, symbol, total supply, and other pertinent information. This endpoint is essential for developers, researchers, and users who need accurate and detailed asset information for blockchain-based applications, analysis, or integration.","x-extended-description-with-markdown":"The On-Chain Asset By Address Lookup endpoint retrieves comprehensive asset information for a specific asset identified by its smart contract address and associated blockchain asset. This API endpoint is particularly useful for obtaining details about assets represented by tokens on various blockchain platforms. By specifying the smart contract address and blockchain asset, users can access detailed metadata about the asset, including its name, symbol, total supply, and other pertinent information. This endpoint is essential for developers, researchers, and users who need accurate and detailed asset information for blockchain-based applications, analysis, or integration.\n\n### Use Cases\n- **Asset Verification**: Verify and retrieve detailed information about specific assets represented by tokens on various blockchains.\n- **Application Development**: Integrate accurate asset data into blockchain-based applications, ensuring up-to-date and comprehensive asset information.\n- **Research and Analysis**: Conduct detailed research or analysis on specific assets by accessing their metadata and other relevant details.\n- **Portfolio Management**: Manage and track blockchain assets by retrieving their detailed information for more informed decision-making.\n\n### Target Audience\n- **Blockchain Developers**: Access detailed asset information for integration into blockchain applications or smart contract development.\n- **Researchers**: Retrieve comprehensive data on blockchain assets for academic or market research.\n- **Investors and Portfolio Managers**: Utilize detailed asset information to manage and track investments in blockchain tokens.\n- **Data Analysts**: Leverage detailed asset data for in-depth analysis and reporting.\n\n### Advantages\n- **Detailed Information**: Provides comprehensive details about blockchain assets, including metadata and token specifics.\n- **Versatility**: Useful for a wide range of applications, from development and integration to research and investment tracking.\n- **Accurate Data**: Ensures accurate and up-to-date asset information by utilizing smart contract addresses and associated blockchain assets.\n\nThis endpoint is crucial for users who need reliable and detailed information about blockchain assets for various applications and analysis.","tags":["On-Chain Core"],"operationId":"onchain_v2_data_by_address","x-section":"On-Chain Core","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v2_data_by_address","x-endpoint-group-name":"Asset By Address","parameters":[{"name":"chain_asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL, the CoinDesk internal asset ID or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100},"example":"ETH","x-search-dropdown-type":"asset"},{"name":"address","in":"query","description":"The address you are interested in","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},{"name":"asset_lookup_priority","in":"query","description":"Use this parameter to denote whether the asset you are sending in the asset parameter should be matched against the list of asset SYMBOLS or list of CoinDesk internal asset IDS.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":[]},{"name":"quote_asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL, the CoinDesk internal asset ID or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/onchain/v2/historical/supply/days":{"get":{"summary":"Historical Supply Day","description":"The On-Chain Historical Supply Day endpoint retrieves comprehensive historical supply data for various digital assets identified by either their CoinDesk asset ID or unique asset symbol. This endpoint offers a detailed view of an asset's supply dynamics on a daily basis, providing insights into circulating supply, total issued supply, staked supply, burnt tokens, and more.","x-extended-description-with-markdown":"The On-Chain Historical Supply Day endpoint retrieves comprehensive historical supply data for various digital assets identified by either their CoinDesk asset ID or unique asset symbol. This endpoint offers a detailed view of an asset's supply dynamics on a daily basis, providing insights into circulating supply, total issued supply, staked supply, burnt tokens, and more. The provided data encompasses critical supply metrics such as free float supply, permanently inaccessible tokens (burnt supply), staked or locked supply, and future planned issuance. This information is vital for understanding market capitalization trends over time, assessing the availability and distribution of tokens, and making informed investment decisions. For assets with an infinite supply, the maximum supply will be indicated as -1, offering flexibility and precision for various asset types. Whether you are a market analyst, an investor, or a developer seeking intricate details on digital asset supply, this endpoint serves as a reliable resource tailored to your unique needs.\n\n### Use Cases\n- **Market Capitalization Analysis**: Track historical supply changes to understand trends in market capitalization, aiding in the evaluation of market health and potential investment opportunities.\n- **Supply Chain Management**: Analyze the distribution and availability of tokens, managing supply chain logistics effectively in blockchain applications.\n- **Investment Decisions**: Make informed decisions based on detailed supply metrics and historical data, assessing the value and potential growth of digital assets.\n- **Token Distribution Analysis**: Study the distribution and issuance patterns of tokens, gaining insights into market behavior and token economics.\n- **Compliance and Auditing**: Ensure adherence to regulations and audit the issuance and circulation of digital assets with detailed supply data.\n\n### Target Audience\n- **Market Analysts**: Professionals requiring detailed insights into market trends and supply dynamics to make data-driven analyses and forecasts.\n- **Investors**: Individuals and institutional investors looking to make informed investment choices based on comprehensive supply information.\n- **Developers**: Blockchain developers and platform integrators who need to incorporate detailed asset supply data into their applications and services.\n- **Researchers**: Academic and industry researchers conducting in-depth studies on the supply patterns and trends of digital assets.\n- **Regulatory Bodies**: Authorities overseeing the compliance and regulatory standards within the blockchain and cryptocurrency space, ensuring transparency and adherence to laws.\n\nThis endpoint is essential for anyone needing reliable and detailed information on the daily supply dynamics of digital assets. Whether you're analyzing market trends, making investment decisions, developing blockchain applications, or ensuring regulatory compliance, this endpoint provides the essential data required for comprehensive analysis and decision-making.","tags":["On-Chain Core"],"operationId":"onchain_v2_historical_supply_days","x-section":"On-Chain Core","x-roles-required":["free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v2_historical_supply","x-endpoint-group-name":"Historical Supply","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":100},"example":"ETH","x-search-dropdown-type":"asset"},{"name":"limit","in":"query","description":"The number of data points to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in supply.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","SUPPLY"],"x-enum-properties-info":{}}},"example":[]},{"name":"asset_lookup_priority","in":"query","description":"Use this parameter to denote whether the asset you are sending in the asset parameter should be matched against the list of asset SYMBOLS or list of CoinDesk internal asset IDS.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_HISTORICAL_SUPPLY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/summary/by/chain":{"get":{"summary":"Assets By Chain V1","description":"The /onchain/v1/summary/by/chain endpoint is deprecated and has been replaced by /onchain/v3/summary/by/chain. The new endpoint introduces changes to the parameters, including replacing chain_symbol with chain_asset, which now accepts both asset IDs and symbols, and adding the optional asset_lookup_priority parameter. ","x-extended-description-with-markdown":"The /onchain/v1/summary/by/chain endpoint is deprecated and has been replaced by /onchain/v3/summary/by/chain. The new endpoint introduces changes to the parameters, including replacing chain_symbol with chain_asset, which now accepts both asset IDs and symbols, and adding the optional asset_lookup_priority parameter. \n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/summary/by/chain` to `/onchain/v3/summary/by/chain`.\n- **Replace `chain_symbol` with `chain_asset`**: Use the `chain_asset` parameter, which now accepts both asset IDs and symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n**Response Format Changes**:\n- The `Data.[REQUESTED_CHAIN_SYMBOL].DATA` object in the old response has been replaced by `Data.CHAIN_ASSET_SUMMARY`.\n- The `Data.[REQUESTED_CHAIN_SYMBOL].ASSETS_SUPPORTED` array has been simplified to `Data.ASSETS_SUPPORTED`.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to /onchain/v3/summary/by/chain to align with the latest versioning scheme.\n- **Parameter Replacement**: chain_symbol is replaced with chain_asset, making the API more versatile by accepting both asset IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: This optional parameter provides more control over asset resolution when multiple identifiers are used.\n- **Response Format Simplification**: The response structure has been simplified by moving asset summary data up one level, reducing nesting and making the response more consistent and easier to parse.\n\n### Reason for Changes\n- **Improved Flexibility**: Accepting both asset IDs and symbols in the chain_asset parameter increases the endpoint's versatility and user-friendliness.\n- **Standardization**: Updating the URL and parameters ensures consistency across the API, improving developer experience and reducing errors.\n- **Enhanced Developer Experience**: Simplifying the response structure and adding the asset_lookup_priority parameter streamlines API usage and makes integration smoother.\n\nBy migrating to `/onchain/v3/summary/by/chain`, you’ll benefit from a more flexible, standardized API with a simplified response structure, leading to easier and more efficient integration in your applications.","tags":["Deprecated"],"operationId":"onchain_v1_summary_by_chain","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_assets_by_chain_deprecated","x-endpoint-group-name":"Assets By Chain","parameters":[{"name":"chain_symbol","in":"query","description":"The unique symbol of the blockchain for which the client wishes to retrieve associated assets. This should be a string that accurately represents the blockchain's common ticker symbol.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100},"example":"ETH"}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v3_summary_by_chain","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GENERIC_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v2/summary/by/chain":{"get":{"summary":"Assets By Chain V2","description":"The /onchain/v2/summary/by/chain endpoint is deprecated and has been replaced by /onchain/v3/summary/by/chain. The parameters remain unchanged, but there is a modification to the response format. ","x-extended-description-with-markdown":"The /onchain/v2/summary/by/chain endpoint is deprecated and has been replaced by /onchain/v3/summary/by/chain. The parameters remain unchanged, but there is a modification to the response format. \n        \n### How to Migrate\n- **Update Endpoint URL: Change your API calls from `/onchain/v2/summary/by/chain` to `/onchain/v3/summary/by/chain`.\n- **No Parameter Changes: Parameters remain the same, so no modifications to your API requests are required apart from the URL and handling the new response structure.\n**Response Format Changes**\n- **The `Data.[REQUESTED_CHAIN_SYMBOL].DATA` object in the old response has been replaced by `Data.CHAIN_ASSET_SUMMARY`.\n- **The `Data.[REQUESTED_CHAIN_SYMBOL].ASSETS_SUPPORTED` array has been simplified to `Data.ASSETS_SUPPORTED`.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/onchain/v3/summary/by/chain` to align with the latest versioning scheme.\n- **Response Format Simplification**: The response structure has been simplified:\n- **The asset summary data previously under `Data.[REQUESTED_CHAIN_SYMBOL].DATA` is now moved to `Data.CHAIN_ASSET_SUMMARY`.\n- **`Data.[REQUESTED_CHAIN_SYMBOL].ASSETS_SUPPORTED` has been replaced by `Data.ASSETS_SUPPORTED`, reducing unnecessary nesting and making the response easier to parse.\n\n### Reason for Changes\n- **Response Simplification**: The updated response format reduces data nesting, making it more consistent and easier to parse for developers.\n- **Consistency**: Updating the URL and response structure ensures consistency across the API, improving the overall developer experience without changing how requests are made.\n\nBy migrating to `/onchain/v3/summary/by/chain`, you'll gain a cleaner and more standardized response format, leading to easier parsing and integration while maintaining the same parameter structure for a seamless transition.        ","tags":["Deprecated"],"operationId":"onchain_v2_summary_by_chain","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_assets_by_chain_deprecated","x-endpoint-group-name":"Assets By Chain","parameters":[{"name":"chain_asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":100},"example":"ETH","x-search-dropdown-type":"asset"},{"name":"asset_lookup_priority","in":"query","description":"Use this parameter to denote whether the asset you are sending in the asset parameter should be matched against the list of asset SYMBOLS or list of CoinDesk internal asset IDS.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v3_summary_by_chain","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GENERIC_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/data/by/address":{"get":{"summary":"Asset By Address Lookup V1","description":"The /onchain/v1/data/by/address endpoint is deprecated and has been replaced by /onchain/v2/data/by/address. Key changes to the parameters include replacing chain_symbol with chain_asset, which now accepts asset IDs or symbols for greater flexibility, and the addition of the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /onchain/v1/data/by/address endpoint is deprecated and has been replaced by /onchain/v2/data/by/address. Key changes to the parameters include replacing chain_symbol with chain_asset, which now accepts asset IDs or symbols for greater flexibility, and the addition of the optional asset_lookup_priority parameter.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/data/by/address` to `/onchain/v2/data/by/address`.\n- **Replace `chain_symbol` with `chain_asset`**: Use the chain_asset parameter, which now accepts asset IDs or symbols instead of the chain symbol for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: You can now use the `asset_lookup_priority` parameter to control how the API resolves assets when multiple identifiers are possible.\n- **No Response Changes**: The response format remains the same, so no changes are required to handle the response.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/onchain/v2/data/by/address` to reflect the new version of the endpoint.\n- **Parameter Replacement**: The `chain_symbol` parameter has been replaced with chain_asset, which offers more versatility by accepting both asset IDs and symbols.\n- **New asset_lookup_priority Parameter**: This optional parameter allows for more control over asset resolution when multiple identifiers are possible.\n\n### Reason for Changes\n- **Increased Flexibility**: Accepting both asset IDs and symbols in the chain_asset parameter provides more versatility for users, allowing for more flexible queries.\n- **Consistency and Standardization**: Updating parameters and introducing `asset_lookup_priority` ensures a consistent experience across the API, making it easier for developers to work with.\n\nBy migrating to `/onchain/v2/data/by/address`, you'll benefit from enhanced flexibility with the new chain_asset parameter, as well as the optional `asset_lookup_priority`, all while maintaining the same response format for seamless integration.","tags":["Deprecated"],"operationId":"onchain_v1_data_by_address","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_data_by_address","x-endpoint-group-name":"Asset By Address","parameters":[{"name":"address","in":"query","description":"The address you are interested in","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":500},"example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},{"name":"chain_symbol","in":"query","description":"The unique symbol of the blockchain for which the client wishes to retrieve associated assets. This should be a string that accurately represents the blockchain's common ticker symbol.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100},"example":"ETH"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":[],"x-enum-properties-info":{}}},"example":[]}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_data_by_address","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/historical/supply/days/by/symbol":{"get":{"summary":"Historical Supply Day by Symbol","description":"The /onchain/v1/historical/supply/days/by/symbol endpoint is deprecated and has been replaced by /onchain/v2/historical/supply/days. The primary change involves replacing the asset_symbol parameter with asset, which now accepts both asset IDs and symbols for greater flexibility. Additionally, the optional asset_lookup_priority parameter has been introduced to provide control over how asset identifiers are resolved.","x-extended-description-with-markdown":"The /onchain/v1/historical/supply/days/by/symbol endpoint is deprecated and has been replaced by /onchain/v2/historical/supply/days. The primary change involves replacing the asset_symbol parameter with asset, which now accepts both asset IDs and symbols for greater flexibility. Additionally, the optional asset_lookup_priority parameter has been introduced to provide control over how asset identifiers are resolved.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/historical/supply/days/by/symbol` to `/onchain/v2/historical/supply/days`.\n- **Replace `asset_symbol` with `asset`**: Use the `asset` parameter, which now accepts both asset IDs and symbols for enhanced flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Optionally, include the `asset_lookup_priority` parameter to control how the API resolves assets when multiple identifiers are provided.\n- **No Response Changes**: The response format remains the same, so no changes are needed for handling the response data.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/onchain/v2/historical/supply/days` to reflect the latest version of the endpoint.\n- **Parameter Replacement**: The `asset_symbol` parameter has been replaced by `asset`, which accepts both asset IDs and symbols, providing more flexibility.\n- **New `asset_lookup_priority` Parameter**: This optional parameter allows for more control over how the API resolves asset identifiers when multiple are provided.\n\n### Reason for Changes\n- **Enhanced Flexibility**: The asset parameter allows for more versatile API queries by accepting both asset IDs and symbols, making it easier to use.\n- **Consistency**: Introducing `asset_lookup_priority` and updating the parameter structure ensures consistency across the API, simplifying the developer experience.\n\nBy migrating to `/onchain/v2/historical/supply/days`, you'll gain enhanced flexibility in asset identification through the new asset parameter, while maintaining the same response format for a seamless transition.","tags":["Deprecated"],"operationId":"onchain_v1_historical_supply_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_historical_supply_days","x-endpoint-group-name":"Historical Supply","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"ETH"},{"name":"limit","in":"query","description":"The number of data points to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in supply.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","SUPPLY"],"x-enum-properties-info":{}}},"example":[]},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_historical_supply_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_HISTORICAL_SUPPLY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/historical/supply/days/by/id":{"get":{"summary":"Historical Supply Day by Id","description":"The /onchain/v1/historical/supply/days/by/id endpoint is deprecated and has been replaced by /onchain/v2/historical/supply/days. The primary change to the parameters involves replacing asset_id with asset, which now accepts both asset IDs and symbols. The optional asset_lookup_priority parameter has also been introduced for controlling how asset identifiers are resolved.","x-extended-description-with-markdown":"The /onchain/v1/historical/supply/days/by/id endpoint is deprecated and has been replaced by /onchain/v2/historical/supply/days. The primary change to the parameters involves replacing asset_id with asset, which now accepts both asset IDs and symbols. The optional asset_lookup_priority parameter has also been introduced for controlling how asset identifiers are resolved.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/historical/supply/days/by/id` to `/onchain/v2/historical/supply/days`.\n- **Replace `asset_id` with `asset`**: Use the `asset` parameter, which now accepts both asset IDs and symbols, instead of the old asset_id parameter.\n- **Add `asset_lookup_priority` (Optional)**: Optionally, you can include the `asset_lookup_priority` parameter to control how the API resolves assets when multiple identifiers are provided.\n- **No Response Changes**: The response format remains the same, so no changes are required to handle the response data.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to /onchain/v2/historical/supply/days to reflect the new version of the endpoint.\n- **Parameter Replacement**: The asset_id parameter has been replaced with asset, which enhances flexibility by accepting both asset IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: The optional `asset_lookup_priority` parameter allows for more control over how the API resolves asset identifiers when multiple are present.\n\n### Reason for Changes\n- **Improved Flexibility**: The new asset parameter, which supports both IDs and symbols, increases the flexibility and usability of the endpoint.\n- **Standardization and Consistency**: Introducing `asset_lookup_priority` and updating the parameter structure ensures consistency across the API, making integration easier and more streamlined for developers.\n\nBy migrating to `/onchain/v2/historical/supply/days`, you'll gain enhanced flexibility in asset identification with the new asset parameter and optional asset_lookup_priority, while keeping the same response format for a smooth transition.","tags":["Deprecated"],"operationId":"onchain_v1_historical_supply_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_historical_supply_days","x-endpoint-group-name":"Historical Supply","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal asset ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":2},{"name":"limit","in":"query","description":"The number of data points to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data before this unix timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in supply.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":false}},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","SUPPLY"],"x-enum-properties-info":{}}},"example":[]},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v2_historical_supply_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_HISTORICAL_SUPPLY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/block/2/last":{"get":{"summary":"Latest Block Full Processed ETH","description":"The /onchain/v1/block/2/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/2 endpoint. The updated endpoint now supports the block_number parameter with negative values, allowing you to retrieve the last block using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block.","x-extended-description-with-markdown":"The /onchain/v1/block/2/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/2 endpoint. The updated endpoint now supports the block_number parameter with negative values, allowing you to retrieve the last block using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/block/2/last` to `/onchain/v1/block/2`.\n- **Set `block_number=-1`**: To retrieve the last block, simply use the `block_number` parameter with a value of -1 in your API call.\n- **Use Negative Values for Earlier Blocks**: If you need earlier blocks, use values like -2 for the penultimate block, -3 for the third-to-last block, and so on.\n- **No Other Parameter or Response Changes**: The response format and other parameters remain unchanged.\n\n### What's Changed and Why\n- **Unified Endpoint**: The functionality for retrieving the latest block has been incorporated into the `/onchain/v1/block/2` endpoint. This simplifies the API by allowing a single endpoint to handle both specific block numbers and the last (or earlier) blocks using negative values.\n- **New `block_number` Parameter Behavior**: The `block_number` parameter now supports negative values. -1 retrieves the last block, -2 retrieves the second-to-last block, and so on, eliminating the need for a separate endpoint.\n\n### Reason for Changes\n- **Simplification**: By enhancing the `/onchain/v1/block/2` endpoint to support negative values for the `block_number` parameter, we eliminated the need for separate endpoints, reducing API complexity and improving ease of use.\n- **Increased Flexibility**: Allowing negative values for block_number gives developers more control and flexibility in retrieving the latest and earlier blocks using a single, unified endpoint.\n\nBy migrating to the enhanced `/onchain/v1/block/2` endpoint and using negative values for the `block_number` parameter, you'll benefit from a more streamlined API, with the ability to retrieve the last or earlier blocks without the need for separate endpoints.","tags":["Deprecated"],"operationId":"onchain_v1_block_2_last","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":5,"x-visible-in-ai":true,"x-endpoint-group-id":"onchain_v1_block_last","x-endpoint-group-name":"Latest Block","parameters":[{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v1_block_2","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ETH_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/block/2/raw/last":{"get":{"summary":"Latest Block Full Raw ETH","description":"The /onchain/v1/block/2/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/2/raw endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This change removes the need for a separate endpoint for the last block.","x-extended-description-with-markdown":"The /onchain/v1/block/2/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/2/raw endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This change removes the need for a separate endpoint for the last block.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/block/2/raw/last` to `/onchain/v1/block/2/raw`.\n- **Set `block_number=-1`**: Use the `block_number` parameter with a value of -1 to retrieve the last block in raw format.\n- **Use Negative Values for Earlier Blocks**: For earlier blocks, use `block_number=-2` for the second-to-last block, -3 for the third-to-last, and so on.\n- **No Other Parameter or Response Changes**: The response format and other parameters remain unchanged.\n\n### What's Changed and Why\n- **Unified Endpoint**: The functionality to retrieve the latest block in raw format has been merged into the `/onchain/v1/block/2/raw` endpoint. The `block_number` parameter now supports negative values, allowing for retrieval of the last block (-1), the penultimate block (-2), and so forth, simplifying the API and removing the need for a separate endpoint.\n- **New `block_number` Parameter Behavior**: The `block_number` parameter now accepts negative values, with -1 for the latest block, -2 for the second-to-last block, and so on.\n\n### Reason for Changes\n- **API Simplification**: By extending the `/onchain/v1/block/2/raw` endpoint to support negative values for the `block_number` parameter, we eliminated the need for the `/onchain/v1/block/2/raw/last endpoint`, simplifying the API and reducing complexity.\n- **Enhanced Flexibility**: The ability to use negative values for block_number provides developers with more flexibility to retrieve the latest or earlier blocks in raw format without requiring multiple endpoints.\n\nBy migrating to the updated `/onchain/v1/block/2/raw` endpoint and using negative values for the `block_number` parameter, you can efficiently retrieve the last or earlier blocks in raw format, streamlining your API integration without the need for separate endpoints.","tags":["Deprecated"],"operationId":"onchain_v1_block_2_raw_last","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_last","x-endpoint-group-name":"Latest Block","deprecated":true,"x-superseded-by-operation-id":"onchain_v1_block_2_raw","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ETH_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/block/8/last":{"get":{"summary":"Latest Block Full Processed BNB","description":"The /onchain/v1/block/8/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/8 endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block.","x-extended-description-with-markdown":"The /onchain/v1/block/8/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/8 endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/onchain/v1/block/8/last` to `/onchain/v1/block/8`.\n- **Set `block_number=-1`**: Use the `block_number` parameter with a value of -1 to retrieve the last block.\n- **Use Negative Values for Earlier Blocks**: Use `block_number=-2` to retrieve the penultimate block, -3 for the third-to-last block, and so on.\n- **No Other Parameter or Response Changes**: The response format and other parameters remain the same.\n\n### What's Changed and Why\n- **Unified Endpoint**: The `/onchain/v1/block/8` endpoint has been updated to handle both specific block numbers and negative values for the `block_number` parameter, allowing retrieval of the last block (-1) and earlier blocks, simplifying the API.\n- **New `block_number` Parameter Behavior**: The `block_number` parameter now supports negative values. Use -1 for the latest block, -2 for the second-to-last block, etc., eliminating the need for separate endpoints.\n\n### Reason for Changes\n- **API Simplification**: The `/onchain/v1/block/8` endpoint has been enhanced to support negative values for the `block_number` parameter, which removes the need for a separate /last endpoint and reduces overall API complexity.\n- **Increased Flexibility**: Using negative values for `block_number` provides a more flexible way to retrieve the latest or earlier blocks without needing additional endpoints.\n\nBy migrating to the updated `/onchain/v1/block/8` endpoint and utilizing negative values for the `block_number` parameter, you’ll be able to efficiently retrieve the latest and earlier blocks, simplifying your API integration and reducing the need for multiple endpoints.","tags":["Deprecated"],"operationId":"onchain_v1_block_8_last","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":5,"x-visible-in-ai":true,"x-endpoint-group-id":"onchain_v1_block_last","x-endpoint-group-name":"Latest Block","parameters":[{"name":"groups","in":"query","description":"When requesting processed block data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","METADATA","TRANSACTIONS"],"items":{"type":"string","enum":["ID","METADATA","TRANSACTIONS","ORPHAN_TRACES","UNCLES","WITHDRAWALS"],"x-enum-properties-info":{}}},"example":["ID","METADATA","TRANSACTIONS"]}],"deprecated":true,"x-superseded-by-operation-id":"onchain_v1_block_8","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BNB_FULL_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/block/8/raw/last":{"get":{"summary":"Latest Block Full Raw BNB","description":"The /onchain/v1/block/8/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/8/raw endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block in raw format.","x-extended-description-with-markdown":"The /onchain/v1/block/8/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/8/raw endpoint. The block_number parameter in the updated endpoint now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This change eliminates the need for a separate endpoint for the last block in raw format.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from /onchain/v1/block/8/raw/last to /onchain/v1/block/8/raw.\n- **Set block_number=-1**: Use the block_number parameter with a value of -1 to retrieve the last block in raw format.\n- **Use Negative Values for Earlier Blocks**: To retrieve earlier blocks, use block_number = -2 for the second-to-last block, -3 for the third-to-last, and so on.\n- **No Other Parameter or Response Changes**: The response format and other parameters remain unchanged.\n\n### What's Changed and Why\n- **Unified Endpoint**: The /onchain/v1/block/8/raw endpoint now handles both specific block numbers and allows the use of negative values for the block_number parameter, enabling the retrieval of the last block (-1) and earlier blocks, thereby removing the need for a separate /last endpoint.\n- **New block_number Parameter Behavior**: The block_number parameter now supports negative values, with -1 for the latest block, -2 for the second-to-last, and so on.\n\n### Reason for Changes\n- **API Simplification**: Enhancing the /onchain/v1/block/8/raw endpoint to support negative values for the block_number parameter eliminates the need for a separate /last endpoint, simplifying API usage.\n- **Enhanced Flexibility**: The new behavior of the block_number parameter allows developers to retrieve the latest and earlier blocks in raw format using negative values, making the API more versatile and reducing complexity.\n\nBy migrating to the updated /onchain/v1/block/8/raw endpoint and using negative values for the block_number parameter, you can efficiently retrieve the last or earlier blocks in raw format, all within a single, unified endpoint.","tags":["Deprecated"],"operationId":"onchain_v1_block_8_raw_last","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_last","x-endpoint-group-name":"Latest Block","deprecated":true,"x-superseded-by-operation-id":"onchain_v1_block_8_raw","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BNB_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/onchain/v1/block/1/raw/last":{"get":{"summary":"Latest Block Full Raw BTC","description":"The /onchain/v1/block/1/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/1/raw endpoint. The block_number parameter now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This eliminates the need for a separate endpoint for the last block.","x-extended-description-with-markdown":"The /onchain/v1/block/1/raw/last endpoint is deprecated and has been replaced by the enhanced /onchain/v1/block/1/raw endpoint. The block_number parameter now supports negative values, allowing you to retrieve the last block in raw format using -1, the penultimate block with -2, and so on. This eliminates the need for a separate endpoint for the last block.\n\n### How to Migrate\n- **Update Endpoint URL: Change your API calls from /onchain/v1/block/1/raw/last to /onchain/v1/block/1/raw.\n- **Set block_number = -1: Use the block_number parameter with a value of -1 to retrieve the last block in raw format.\n- **Use Negative Values for Earlier Blocks: Use block_number = -2 for the second-to-last block, -3 for the third-to-last block, and so forth.\n- **No Other Parameter or Response Changes: The response format and other parameters remain unchanged.\n\n### What's Changed and Why\n- **Unified Endpoint: The /onchain/v1/block/1/raw endpoint now handles both specific block numbers and supports negative values for the block_number parameter, allowing retrieval of the last block (-1) and earlier blocks. This eliminates the need for a separate /last endpoint.\n- **New block_number Parameter Behavior: The block_number parameter now accepts negative values, with -1 for the latest block, -2 for the second-to-last block, and so on.\n\n### Reason for Changes\n- **API Simplification: By enhancing the /onchain/v1/block/1/raw endpoint to support negative values for the block_number parameter, we have eliminated the need for the /last endpoint, making the API simpler and easier to use.\n- **Enhanced Flexibility: Developers can now retrieve the latest and earlier blocks in raw format using negative values for block_number, improving flexibility without needing separate endpoints.\n\nBy migrating to the enhanced /onchain/v1/block/1/raw endpoint and using negative values for the block_number parameter, you can retrieve the last or earlier blocks in raw format, all within a single, streamlined endpoint.","tags":["Deprecated"],"operationId":"onchain_v1_block_1_raw_last","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"onchain_v1_block_last","x-endpoint-group-name":"Latest Block","deprecated":true,"x-superseded-by-operation-id":"onchain_v1_block_1_raw","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BTC_FULL_RAW_BLOCK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v2/metadata":{"get":{"summary":"Full Asset Metadata","description":"The Full Asset Metadata endpoint returns an object that provides detailed and comprehensive information about multiple cryptocurrency assets in response to a request. Each asset can be identified by its CoinDesk asset ID, unique asset symbol, or asset URI, ensuring users receive a broad dataset covering all requested assets. This object consolidates extensive data related to asset description, classification, blockchain properties, social metrics, token sale information, and equity sale details for each asset—facilitating in-depth analysis, development, and research.","x-extended-description-with-markdown":"The Full Asset Metadata endpoint returns an object that provides detailed and comprehensive information about multiple cryptocurrency assets in response to a request. Each asset can be identified by its CoinDesk asset ID, unique asset symbol, or asset URI, ensuring users receive a broad dataset covering all requested assets. This object consolidates extensive data related to asset description, classification, blockchain properties, social metrics, token sale information, and equity sale details for each asset—facilitating in-depth analysis, development, and research.\n\nThe assets specified in the `assets` parameter will be returned as keys in the response object, allowing users to easily map the provided input to the corresponding detailed asset metadata. This ensures a structured and predictable response format that aligns with the original request, simplifying data handling and integration into applications.\n\n### Key Features\n- **Multi-Asset Comprehensive Information**: Retrieve metadata for multiple cryptocurrency assets in one call. This includes asset type, symbol, name, and official links to whitepapers and websites, streamlining the process of accessing extensive data for various assets at once.\n- **Detailed Blockchain and Token Properties**: Obtain technical specifications like consensus mechanisms, supply data, block creation times, and key blockchain addresses for each requested asset, supporting blockchain development and analysis at scale.\n- **Integrated Social Metrics**: Access social media presence and engagement metrics across platforms such as Twitter, Discord, and Telegram, providing insight into the community interest and sentiment for each asset.\n- **Token Sale and ICO Data**: Retrieve historical token sale information for multiple assets, including ICO/IEO details, funding stages, accepted payment methods, and legal considerations, supporting market analysis and strategic planning.\n- **Equity Sale Information**: Access data on equity fundraising activities for relevant assets, including investor details, funding goals, and legal frameworks, aiding compliance and business development.\n\n### Use Cases\n- **Application Development**: Developers can integrate rich asset metadata for multiple assets into applications, wallets, or exchange platforms to enhance user experience and offer a comprehensive view of various cryptocurrencies.\n- **Market Analysis and Research**: Analysts and researchers can conduct multi-asset studies using detailed metadata for a broad range of assets, supporting comprehensive market reports and academic work.\n- **Investment and Portfolio Management**: Investors and traders can make informed decisions by comparing properties, social engagement, and fundraising histories across a diverse set of assets.\n- **Compliance and Legal Review**: Compliance teams can use detailed sale and legal data for multiple assets to ensure regulatory alignment and conduct thorough due diligence.\n\n### Target Audiences\n- **Cryptocurrency Exchanges**: Streamline the listing process by accessing all necessary information for multiple assets in one response.\n- **Financial Services Firms**: Integrate comprehensive multi-asset data into financial products to enhance portfolio management and advisory services.\n- **Blockchain Startups**: Conduct competitive analysis and market research efficiently by accessing information on a range of assets.\n- **Media and Information Platforms**: Provide readers with detailed and up-to-date information on a wide array of cryptocurrency assets.\n- **Index Administrators**: Use detailed metadata on various assets to ensure accurate classification, tokenomics, and blockchain properties for reliable market indices.\n- **Custodians**: Safeguard and manage digital assets by verifying the classification and legal information of multiple assets, aiding client reporting and audits.\n\n### Data Handling Notes\n- **High Data Volume**: When requesting metadata for multiple assets, be prepared for significant data volumes. Structuring and indexing data in a database is advised for efficient retrieval and updates.\n- **Dynamic Updates**: Social metrics and token sale data can change frequently across various assets. Schedule updates to maintain current information, particularly for high-activity or trending assets.\n- **Optimized Storage**: For performance, store only the most relevant fields such as tokenomics or social metrics for multiple assets, especially when dealing with a high number of assets.\n- **Handling Incomplete Data**: Some assets may have incomplete metadata. Implement strategies to manage missing data gracefully. Enterprise customers can reach out via Slack for dedicated support, while other users can contact via email for prioritized reviews of specific assets.\n\nWith the Full Asset Metadata endpoint, users can efficiently access detailed information for multiple cryptocurrency assets with a single API call, optimizing workflows and supporting innovation in blockchain technology and cryptocurrency research.","tags":["Asset"],"operationId":"asset_v2_metadata","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":true,"x-endpoint-group-id":"asset_v2_metadata_group","x-endpoint-group-name":"Metadata","parameters":[{"name":"assets","in":"query","description":"Specify a list of digital assets for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":50,"items":{"type":"string"}},"example":["BTC"],"x-search-dropdown-type":"assets"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":[]},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS, CoinDesk internal asset IDS, or asset URIs. Note that asset SYMBOLS and URIs may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID","URI"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"},"URI":{"name":"URI Priority","description":"Prioritize asset lookup by its associated Uniform Resource Identifier (URI) (e.g., bitcoin for Bitcoin)."}}},"example":"SYMBOL"},{"name":"quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"},{"name":"asset_language","in":"query","description":"Specifies the desired language for localized asset descriptions and other fields that make sense to translate. The value should be a valid IETF BCP 47 language tag (e.g., \"en-US\" for American English, \"ja-JP\" for Japanese). Defaults to \"en-US\" if not specified. Fields with translations enabled: ASSET_DYNAMIC_FAQS,ASSET_DESCRIPTION,ASSET_DESCRIPTION_SUMMARY,ASSET_DESCRIPTION_SNIPPET,SEO_DESCRIPTION,ASSET_DESCRIPTION_EXTENDED_SEO.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"en-US","enum":["en-US","de-DE","es-ES","fr-FR","pt-BR","it-IT","ja-JP","ko-KR","zh-CN","vi-VN","sv-SE","tr-TR","tl-PH","ru-RU","uk-UA","ro-RO","nl-NL","sq-AL"],"x-enum-properties-info":{"en-US":{"name":"English (US)","description":"English language as used in the United States"},"de-DE":{"name":"Deutsch","description":"German language as used in Germany"},"es-ES":{"name":"Español","description":"Spanish language as used in Spain"},"fr-FR":{"name":"Français","description":"French language as used in France"},"pt-BR":{"name":"Português (Brasil)","description":"Portuguese language as used in Brazil"},"it-IT":{"name":"Italiano","description":"Italian language as used in Italy"},"ja-JP":{"name":"日本語","description":"Japanese language as used in Japan"},"ko-KR":{"name":"한국어","description":"Korean language as used in South Korea"},"zh-CN":{"name":"简体中文","description":"Simplified Chinese language as used in China"},"vi-VN":{"name":"Tiếng việt","description":"Vietnamese language as used in Vietnam"},"sv-SE":{"name":"Svenska","description":"Swedish language as used in Sweden"},"tr-TR":{"name":"Türkçe","description":"Turkish language as used in Turkey"},"tl-PH":{"name":"Filipino","description":"Filipino language as used in the Philippines"},"ru-RU":{"name":"Русский","description":"Russian language as used in Russia"},"uk-UA":{"name":"Українська","description":"Ukrainian language as used in Ukraine"},"ro-RO":{"name":"Română","description":"Romanian language as used in Romania"},"nl-NL":{"name":"Nederlands","description":"Dutch language as used in the Netherlands"},"sq-AL":{"name":"Shqip","description":"Albanian language as used in Albania"}}},"example":"en-US"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_OBJECT_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_WITH_WARN"}}}}}}},"/asset/v1/top/list":{"get":{"summary":"Top List General","description":"The Toplist endpoint provides ranked overviews of digital assets and industries based on critical financial metrics like market capitalization, trading volume, and price changes. It streamlines market analysis by presenting leading assets and industries in the cryptocurrency space, using pagination to efficiently navigate extensive data across multiple toplists.","x-extended-description-with-markdown":"The Toplist endpoint provides ranked overviews of digital assets and industries based on critical financial metrics like market capitalization, trading volume, and price changes. It streamlines market analysis by presenting leading assets and industries in the cryptocurrency space, using pagination to efficiently navigate extensive data across multiple toplists.\n\n### Key Features\n- **Ranked Asset and Industry Listings**: Access digital assets and industries ranked by key financial metrics, including market capitalization, trading volume, and price changes.\n- **Multiple Toplists**: Explore various toplists to gain comprehensive insights into different market segments and industry trends.\n- **Customizable Sorting and Filtering**: Sort and filter assets and industries based on specific criteria to retrieve targeted data relevant to your needs.\n- **Pagination Support**: Efficiently navigate through large datasets with pagination, enabling easy data management and interpretation.\n- **Real-Time Market Data**: Receive up-to-date information for accurate market analysis and timely decision-making.\n- **Detailed Asset and Industry Metadata**: Obtain comprehensive metadata for each asset and industry, supporting in-depth research and seamless integration.\n\n### Use Cases\n- **Integration into Financial Websites and Apps**: Incorporate real-time digital asset and industry rankings into financial platforms to provide users with current market information.\n- **Market Trend Analysis**: Analyze market trends and identify leading cryptocurrencies and industries using ranked data.\n- **Dashboard and Widget Development**: Create user-friendly dashboards and customizable widgets displaying live data on top digital assets and industries.\n- **Portfolio Tracking and Management**: Develop tools that track asset and industry performance and market movements for investors and traders.\n- **Automated Reporting Systems**: Power automated reporting tools for financial analysis, offering regular updates on top-performing assets, industries, and market trends.\n\n### Target Audiences\n- **Developers and Integrators**: Implement ranked asset and industry data into applications, websites, or analytical tools for enhanced functionality.\n- **Financial Institutions and Asset Managers**: Monitor market trends and asset/industry performance to inform investment strategies and portfolio management.\n- **Cryptocurrency Exchanges**: Provide users with real-time rankings and detailed information on various digital assets and industries.\n- **Media and Information Platforms**: Offer readers and subscribers accurate, up-to-date rankings and market data on assets and industries.\n- **Investors and Traders**: Access critical market metrics to make informed trading and investment decisions across assets and industries.\n- **Index Calculators and Index Administrators**: Utilize ranked asset and industry data to calculate and administer indices that reflect market performance, ensuring accurate and up-to-date index compositions.\n- **Custodians**: Leverage real-time rankings and detailed trade data to monitor market movements and verify the accuracy of trades and asset valuations across portfolios.\n\n### Data Handling Notes\n- **Large Datasets**: With multiple toplists and large datasets, be mindful of the volume of data retrieved. Use pagination effectively to manage and navigate through extensive ranked asset and industry information.\n- **Efficient Data Retrieval**: Implement sorting and filtering options to limit data to only the most relevant assets or industries, improving both performance and usability in applications handling large amounts of market data.\n- **Frequent Updates**: Market data such as rankings, market capitalization, and price changes are subject to constant fluctuations. Regularly refresh your data to ensure that users have access to accurate, up-to-date rankings.\n- **Missing or Incomplete Data**: In cases where data for certain assets or industries is incomplete or unavailable, consider fallback strategies. Enterprise customers can reach out through Slack for assistance, while other users can email us, and our content and research teams will help fill in the missing information.\n\nBy leveraging the Toplist endpoint, users can efficiently access ranked digital asset and industry data, enhancing market analysis, application development, and investment strategies in the dynamic cryptocurrency space.","tags":["Asset"],"operationId":"asset_v1_top_list","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_top_list","x-endpoint-group-name":"Top List","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CIRCULATING_MKT_CAP_USD","enum":["CREATED_ON","LAUNCH_DATE","UPDATED_ON","PRICE_USD","CIRCULATING_MKT_CAP_USD","TOTAL_MKT_CAP_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD","SPOT_MOVING_24_HOUR_CHANGE_USD","SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_7_DAY_CHANGE_USD","SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_30_DAY_CHANGE_USD","SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD","TOTAL_ENDPOINTS_WITH_ISSUES"],"x-enum-properties-info":{"CREATED_ON":{"name":"Created On","description":"The Unix timestamp indicating when the asset was added to our system. Used for toplists to sort by the most recently added or the earliest added assets."},"LAUNCH_DATE":{"name":"Launch Date","description":"The Unix timestamp of the asset’s launch. For blockchains, this is the first block time; for tokens, it is the smart contract deployment time; for stocks, it is the company’s start date. Used to sort assets by their launch order."},"UPDATED_ON":{"name":"Updated On","description":"The Unix timestamp of the last manual update to the asset’s static data. Useful for tracking assets being worked on by the static data team."},"PRICE_USD":{"name":"Spot Price USD","description":"The asset price in USD, derived from the CADLI index. Used to sort assets by value, with optional conversion to other currencies. Includes conversion details such as rate and source."},"CIRCULATING_MKT_CAP_USD":{"name":"Circulating Market Cap USD","description":"Market capitalization based on circulating supply and the CADLI index price in USD. Use this field to rank assets by their circulating value. Convertible to other currencies with provided conversion data."},"TOTAL_MKT_CAP_USD":{"name":"Total Market Cap USD","description":"Market capitalization based on total supply and the CADLI index price in USD. Useful for ranking assets by their total value. Convertible to other currencies with conversion details included."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"24h Moving Top Tier Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Used for ranking by liquidity in high-quality markets."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"name":"24h Moving Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure overall spot market liquidity."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"name":"24h Moving Top Tier Spot Volume (USD)","description":"The 24-hour moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Used to rank assets by trading activity on high-quality platforms."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"name":"24h Moving Spot Volume (USD)","description":"The total 24-hour moving trading volume in USD across all spot markets, including converted values. Useful for evaluating overall liquidity and activity."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"name":"24h Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the last 24 hours on spot markets. Used to identify significant price movements."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"name":"24h Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the last 24 hours on spot markets. Useful for identifying relative price trends."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"7d Moving Top Tier Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for tracking weekly liquidity in high-quality markets."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"7d Moving Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure weekly overall spot market liquidity."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"7d Moving Top Tier Spot Volume (USD)","description":"The 7-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating weekly trading activity on high-quality platforms."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"name":"7d Moving Spot Volume (USD)","description":"The total 7-day moving trading volume in USD across all spot markets, including converted values. Useful for assessing weekly overall liquidity."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"name":"7d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 7 days on spot markets. Highlights weekly price fluctuations."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"name":"7d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 7 days on spot markets. Useful for identifying weekly relative price trends."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"30d Moving Top Tier Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for evaluating monthly liquidity on high-quality markets."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"30d Moving Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Useful for measuring monthly spot market liquidity."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"30d Moving Top Tier Spot Volume (USD)","description":"The 30-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating monthly trading activity on high-quality platforms."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"name":"30d Moving Spot Volume (USD)","description":"The total 30-day moving trading volume in USD across all spot markets, including converted values. Useful for analyzing monthly overall liquidity."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"name":"30d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 30 days on spot markets. Highlights significant monthly price changes."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"name":"30d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 30 days on spot markets. Useful for tracking monthly relative price trends."},"TOTAL_ENDPOINTS_WITH_ISSUES":{"name":"Endpoints with Issues","description":"The number of API endpoints reporting potential issues for the asset in the last 24 hours. Helps investigate problems in automatic data updates such as supply or social metrics."}}},"example":"CIRCULATING_MKT_CAP_USD"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"ID":{"name":"ID","description":"Basic identification details of the asset, such as unique identifiers."},"BASIC":{"name":"BASIC","description":"Basic metadata about the asset, including general characteristics."},"SUPPORTED_PLATFORMS":{"name":"SUPPORTED_PLATFORMS","description":"Details of blockchain platforms or networks where the asset is supported."},"CUSTODIANS":{"name":"CUSTODIANS","description":"Information about custodians managing or holding the asset.","rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"name":"CONTROLLED_ADDRESSES","description":"Addresses directly controlled or monitored for the asset.","rolesRequired":["free"]},"SECURITY_METRICS":{"name":"SECURITY_METRICS","description":"Metrics related to the security and risk evaluation of the asset."},"SUPPLY":{"name":"SUPPLY","description":"Information about the circulating, total, or max supply of the asset."},"SUPPLY_ADDRESSES":{"name":"SUPPLY_ADDRESSES","description":"Addresses holding the asset, impacting its supply dynamics."},"ASSET_TYPE_SPECIFIC_METRICS":{"name":"ASSET_TYPE_SPECIFIC_METRICS","description":"Metrics unique to specific types of assets, such as tokens or coins."},"AI_INSIGHTS":{"name":"AI_INSIGHTS","description":"AI-generated insights providing dynamic analysis, contextual information, and intelligent answers based on real-time data."},"SOCIAL":{"name":"SOCIAL","description":"Social media and community engagement data for the asset.","rolesRequired":["free"]},"TOKEN_SALE":{"name":"TOKEN_SALE","description":"Information related to the asset’s token sale or ICO.","rolesRequired":["free"]},"EQUITY_SALE":{"name":"EQUITY_SALE","description":"Data on equity sales associated with the asset or organization.","rolesRequired":["free"]},"RESOURCE_LINKS":{"name":"RESOURCE_LINKS","description":"Links to external resources, such as websites or whitepapers."},"CLASSIFICATION":{"name":"CLASSIFICATION","description":"Classification details like category, sector, or use case of the asset."},"PRICE":{"name":"PRICE","description":"Real-time and historical price data of the asset."},"MKT_CAP":{"name":"MKT_CAP","description":"Market capitalization information of the asset."},"VOLUME":{"name":"VOLUME","description":"Trading volume metrics, including exchange and market data."},"CHANGE":{"name":"CHANGE","description":"Price or volume changes over defined time intervals."},"TOPLIST_RANK":{"name":"TOPLIST_RANK","description":"Ranking of the asset on toplist leaderboards based on various criteria."},"DESCRIPTION":{"name":"DESCRIPTION","description":"Detailed description of the asset, including features and purpose."},"DESCRIPTION_SUMMARY":{"name":"DESCRIPTION_SUMMARY","description":"Concise summary of the asset’s description for quick reference."},"CONTACT":{"name":"CONTACT","description":"Contact information related to the asset or its developers."},"SEO":{"name":"SEO","description":"Search engine optimization metadata for better discoverability."},"INTERNAL":{"name":"INTERNAL","description":"Internal data used for asset management and administration purposes.","rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"]},{"name":"toplist_quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"},{"name":"asset_type","in":"query","description":"This parameter can be used to filter the returned assets based on their type. Allowed values: BLOCKCHAIN,FIAT,TOKEN,STOCK,INDEX,COMMODITY or it can be left empty to get all types.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["BLOCKCHAIN","TOKEN","FIAT","STOCK","INDEX","COMMODITY","ETF","BOND","REIT","FUND",""],"x-enum-properties-info":{"BLOCKCHAIN":{"name":"Blockchain","description":"This category includes digital currencies that serve as the native assets of their respective blockchains, facilitating network transactions and operations."},"TOKEN":{"name":"Token","description":"Digital assets that operate on top of existing blockchain infrastructure, representing various utilities or assets, but do not have their independent blockchain."},"FIAT":{"name":"Fiat","description":"Government-issued currencies recognized as legal tender in their respective countries, such as the US Dollar (USD) or the Euro (EUR), not backed by a physical commodity"},"STOCK":{"name":"Stock","description":"Equity shares in companies, traded on stock markets, representing ownership and potentially yielding dividends, reflecting the company's value and performance."},"INDEX":{"name":"Index","description":"A statistical measure of changes in a portfolio of stocks, representing the performance of a specific market segment or the market as a whole."},"COMMODITY":{"name":"Commodity","description":"Basic goods used in commerce that are interchangeable with other goods of the same type, such as precious metals, oil, or agricultural products."},"ETF":{"name":"Exchange-Traded Fund","description":"An ETF, or Exchange-Traded Fund, is a type of investment fund that is traded on stock exchanges, much like stocks. An ETF holds assets such as stocks, commodities, or bonds and generally operates with an arbitrage mechanism designed to keep it trading close to its net asset value, though deviations can occasionally occur."},"BOND":{"name":"Bond","description":"Debt securities issued by corporations, governments, or other entities, representing a loan with scheduled interest payments and principal repayment."},"REIT":{"name":"Real Estate Investment Trust","description":"Companies that own, operate, or finance income-generating real estate, providing exposure to real estate assets."},"FUND":{"name":"Investment Fund","description":"Pooled investment vehicles including mutual funds, hedge funds, and private equity funds that are not exchange-traded."}}},"example":""},{"name":"asset_industry","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["PAYMENT","PLATFORM","STABLECOIN","CROSS_CHAIN_INFRASTRUCTURE","DECENTRALIZED_INFRASTRUCTURE","IDENTITY","MEMBERSHIP","COLLECTIBLE","REPUTATION","GOVERNANCE","WRAPPED_COLLATERAL","DECENTRALIZED_FINANCE_PROTOCOL","EXCHANGE_UTILITY","MEME","YIELD_FARMING","LIQUID_STAKED","GAMING","ARTIFICIAL_INTELLIGENCE","METAVERSE","ORACLE","REAL_WORLD_ASSETS","PRIVACY",""],"x-enum-properties-info":{"PAYMENT":{"name":"Payment","description":"Digital assets primarily designed to serve as a peer-to-peer medium of exchange and store of value for goods and services—excluding tokens that power specialized payment-service protocols. Examples: Bitcoin (BTC), Litecoin (LTC), Bitcoin Cash (BCH), Dogecoin (DOGE), Monero (XMR), Zcash (ZEC)."},"PLATFORM":{"name":"Platform","description":"Digital assets that act as the native gas token of a public, permissionless blockchain equipped with a general‑purpose smart‑contract runtime (e.g., EVM, WASM, Move). These tokens are required to pay transaction fees, secure the network through staking or mining, and may also confer on‑chain voting rights. Examples: Ethereum (ETH), Solana (SOL), Avalanche (AVAX), BNB Chain (BNB), Cronos (CRO)."},"STABLECOIN":{"name":"Stablecoin","description":"Digital assets designed to maintain a stable value by pegging exclusively to fiat currencies (such as the U.S. dollar or euro), typically through full or partial reserve backing, algorithmic stabilization mechanisms, or collateralized baskets of assets designed to track a specific fiat value. Their core function is to provide price stability for use as a medium of exchange, unit of account, or store of value within the crypto ecosystem. This category excludes tokens pegged to commodities (e.g., gold), which are classified under wrapped collateral. Examples: Tether (USDT), USD Coin (USDC), Reserve (RSV)."},"CROSS_CHAIN_INFRASTRUCTURE":{"name":"Cross-Chain Infrastructure","description":"Digital assets and protocols whose primary function is to enable interoperability between otherwise independent blockchains. This category includes Layer‑0 networks with shared security, trust‑minimized bridges, cross‑chain messaging systems, asset‑transfer hubs, and multi‑chain development frameworks or middleware that facilitate seamless cross‑chain operation. Examples: Polkadot (DOT), Cosmos (ATOM), Axelar (AXL), LayerZero (L0), Wormhole (WORM), THORChain (RUNE)."},"DECENTRALIZED_INFRASTRUCTURE":{"name":"Decentralized Infrastructure","description":"Digital assets that supply foundational infrastructure services, both digital and physical, for decentralized applications and networks. This includes decentralized storage networks, compute/GPU marketplaces, wireless networks, energy grids, sensor networks, data‑availability layers, and blockchain‑agnostic naming services. These projects tokenize infrastructure resources that can be contributed by distributed providers and consumed by users within the network. Examples: Chainlink (LINK), Filecoin (FIL), Arweave (AR), Akash Network (AKT), Render (RNDR), Helium (HNT), Energy Web Token (EWT), Celestia (TIA), and Ethereum Name Service (ENS)."},"IDENTITY":{"name":"Identity","description":"Digital assets whose primary purpose is to issue, verify, or manage user credentials, or KYC attestations—enabling individuals or organizations to prove attributes such as uniqueness, age, or compliance to other parties. The industry covers credential‑issuing platforms and identity wallets. Examples: Civic (CVC), Worldcoin (WLD), BrightID (BrightID), Proof of Humanity (POH)."},"MEMBERSHIP":{"name":"Membership","description":"Digital assets that provide access, participation rights, or privileges within a specific community, network, or organization. These tokens often serve as a gateway to join or interact with decentralized platforms—especially Decentralized Autonomous Organizations (DAOs)—by enabling features like proposal submission, task participation, or gated content access. While they may include governance functionality, their primary purpose is membership and access, not decision-making. Examples: Aragon (ANT), DAOstack (GEN), Friends With Benefits (FWB)."},"COLLECTIBLE":{"name":"Collectible (NFT)","description":"Digital assets implemented as, or powering, non-fungible tokens (NFTs). This industry covers both the NFTs themselves—including unique or limited-edition items such as artwork, avatars, in-game assets, memorabilia, tickets, or tokenized domain names—and the fungible tokens or blockchains specifically designed for their creation, trading, or utility. Examples: ApeCoin (APE), Flow (FLOW), Rarible (RARI), Immutable (IMX), Blur (BLUR), LooksRare (LOOKS)."},"REPUTATION":{"name":"Reputation","description":"Digital assets whose primary function is to record or compute reputation scores and trust metrics for blockchain addresses or users, based on on‑chain behavior or verifiable off‑chain activity. These scores are typically consumed by other protocols for purposes such as governance weighting, credit scoring, or access control. This tag includes reputation-scoring tokens and dedicated reputation networks, but excludes projects focused solely on issuing personal credentials. Examples: Augur (REP), KARMA Protocol (KARMA), Gitcoin Passport (GTC Passport)."},"GOVERNANCE":{"name":"Governance","description":"Digital assets that grant holders the right to vote on proposals, influence protocol parameters, or shape the future direction of a decentralized project. These tokens are used primarily to decentralize control and decision-making, without necessarily conferring broader access or membership privileges in the network. Examples: Uniswap (UNI), Maker (MKR), and Tezos (XTZ)."},"WRAPPED_COLLATERAL":{"name":"Wrapped Collateral","description":"Tokens that represent underlying crypto or real-world assets in a wrapped form, enabling their seamless integration into decentralized finance (DeFi) applications. These assets are typically fully collateralized 1:1 and maintain a verifiable claim to the original asset, whether it's another cryptocurrency or a commodity (such as gold). Wrapped collateral tokens are used to bring non-native assets into new ecosystems for purposes such as lending, liquidity provision, yield strategies, and synthetic asset creation. This category excludes fiat-pegged stablecoins, which are classified separately. Examples: Wrapped Bitcoin (WBTC), Ren Bitcoin (RenBTC), PAX Gold (PAXG), Tether Gold (XAUT)."},"DECENTRALIZED_FINANCE_PROTOCOL":{"name":"DeFi","description":"Digital assets associated with decentralized financial protocols that enable financial services without reliance on centralized intermediaries. This includes protocols for decentralized trading, lending and borrowing, stablecoin issuance, synthetic assets, yield generation, and other peer-to-peer financial activities. While many leverage smart contracts, the defining feature is their role in facilitating decentralized finance. Examples: Uniswap (UNI), Curve (CRV), Aave (AAVE), Compound (COMP), and Maker (MKR)."},"EXCHANGE_UTILITY":{"name":"Exchange Utility","description":"Digital assets issued by centralized cryptocurrency exchanges that create economic alignment between the exchange's business success and token holders. These tokens typically provide holders with tangible benefits including trading fee discounts, priority access to new features or token sales, participation in exchange revenue or profits, governance input on certain platform decisions, and periodic token burns linked to exchange performance. Unlike general platform tokens, exchange utility tokens are directly tied to the economics of specific trading venues and derive value primarily from the exchange's market position and user base. Examples: Binance Coin (BNB), UNUS SED LEO (LEO), FTX Token (FTT), KuCoin Token (KCS), and OKB (OKB)."},"MEME":{"name":"Meme","description":"Digital assets created primarily as internet culture phenomena, derived from memes, pop culture references, or social media trends, with minimal technical innovation or utility beyond community sentiment and branding. These tokens typically gain value through viral adoption, social signaling, and speculative trading rather than underlying technological utility or revenue-generating mechanisms. While originally created for entertainment or satirical purposes, some have evolved into significant market participants with dedicated ecosystems. This category includes both stand-alone meme tokens and specialized blockchains explicitly designed around meme culture. Examples: Dogecoin (DOGE), Shiba Inu (SHIB), Pepe (PEPE), and Floki Inu (FLOKI)."},"YIELD_FARMING":{"name":"Yield Optimization","description":"Digital assets associated with protocols that automate and optimize yield-generating strategies across DeFi ecosystems. These projects focus specifically on maximizing returns from lending, liquidity provision, and staking through automated capital allocation, compounding, and strategy switching. Yield optimization protocols typically employ smart contract \"vaults\" that aggregate user funds, implement complex yield strategies, and automatically reinvest earnings to maximize APY. Unlike general DeFi protocols, these platforms are purpose-built for yield enhancement rather than providing base financial primitives. Examples: Yearn Finance (YFI), Convex Finance (CVX), Beefy Finance (BIFI), Harvest Finance (FARM), and Pickle Finance (PICKLE)."},"LIQUID_STAKED":{"name":"Liquid Staked Tokens","description":"Digital assets that function exclusively as receipt tokens for staked assets in proof-of-stake networks. Each token represents a 1:1 claim on the underlying staked asset plus accrued staking rewards, with the distinguishing feature that these tokens can be transferred, traded, or used in DeFi while the original assets remain locked in staking. This category is strictly limited to the derivative receipt tokens themselves (not the protocols that issue them). Examples: Lido's stETH (staked ETH), Rocket Pool's rETH (rETH), Binance's BETH (Binance ETH), and Marinade's mSOL (mSOL)."},"GAMING":{"name":"Gaming","description":"Digital assets and blockchain networks that power blockchain‑based games, supporting in‑game economies, asset ownership, and play‑to‑earn models; includes both game‑native tokens and gaming‑focused blockchain networks. Examples: Axie Infinity (AXS), The Sandbox (SAND), Enjin Coin (ENJ), ImmutableX (IMX), and Gala (GALA)."},"ARTIFICIAL_INTELLIGENCE":{"name":"AI (Artificial Intelligence)","description":"Digital assets and blockchain projects that integrate artificial intelligence technologies to enhance data processing, decision-making, and automation within decentralized ecosystems. These assets may focus on AI-driven analytics, machine learning models, or AI-based applications that leverage blockchain for transparency and security. Examples: SingularityNET (AGIX), Fetch.ai (FET)."},"METAVERSE":{"name":"Metaverse","description":"Digital assets and blockchain projects that create immersive virtual environments, enabling users to interact, socialize, and transact within a digital universe. These assets often support virtual reality (VR), augmented reality (AR), and 3D spaces, facilitating the creation and exchange of digital goods and experiences. Examples: Decentraland (MANA), The Sandbox (SAND), Somnium Space (CUBE)."},"ORACLE":{"name":"Oracle Networks","description":"Digital assets powering specialized networks that serve as the bridge between blockchains and external data sources, providing verifiable real-world information to smart contracts. Oracle networks focus on secure data delivery, price feeds, and off-chain computation services that enable critical DeFi and smart contract functionality. These tokens typically incentivize a decentralized network of node operators to retrieve, verify, and deliver accurate data on-chain, with economic security mechanisms to ensure reliable operation. Examples: Chainlink (LINK), Band Protocol (BAND), API3 (API3), Pyth Network (PYTH), and UMA (UMA)."},"REAL_WORLD_ASSETS":{"name":"Real World Assets","description":"Digital tokens that represent ownership or claims on physical or traditional financial assets outside the cryptocurrency ecosystem. These include tokenized securities, real estate, carbon credits, bonds, invoices, and other traditional assets brought on-chain through tokenization protocols. Unlike wrapped collateral which primarily represents other digital assets or commodities, RWAs connect blockchain technology directly to traditional finance and physical assets through legal and regulatory frameworks. Examples: Centrifuge (CFG), Maker (MKR) Real World Asset vaults, Ondo Finance tokens, RealT tokens, Polymesh (POLYX), and tokenized treasury bills."},"PRIVACY":{"name":"Privacy","description":"Digital assets whose primary purpose is to provide transaction-level confidentiality at the base protocol or through privacy-preserving smart-contract execution. These networks hide information such as sender and receiver identities, transferred amounts, or on-chain payloads using techniques like ring signatures, stealth addresses, confidential transactions, zero-knowledge proofs, or MimbleWimble. This industry covers native coins of privacy-focused Layer-1 blockchains and privacy-preserving compute platforms where confidentiality is a core feature rather than an incidental add-on. It excludes governance tokens for mixers or privacy dApps built on other chains, general networking privacy tools such as mixnets or VPNs, and general-purpose platforms where privacy is optional and not the main value proposition. Examples: Monero (XMR), Zcash (ZEC), Firo (FIRO)."}}},"example":""}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TOPLIST_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/top/list/consensus-mechanism":{"get":{"summary":"Top List By Consensus Mechanism","description":"The Consensus Mechanism Toplist endpoint provides ranked overviews of digital assets filtered by consensus mechanisms, offering insights into how different validation technologies influence market performance. It enables users to analyze assets within the same consensus group, based on key financial metrics such as market capitalization, trading volume, and price changes. Pagination is used to navigate large datasets, making it easy to access detailed rankings across diverse consensus mechanisms.","x-extended-description-with-markdown":"The Consensus Mechanism Toplist endpoint provides ranked overviews of digital assets filtered by consensus mechanisms, offering insights into how different validation technologies influence market performance. It enables users to analyze assets within the same consensus group, based on key financial metrics such as market capitalization, trading volume, and price changes. Pagination is used to navigate large datasets, making it easy to access detailed rankings across diverse consensus mechanisms.\n\n### Key Features\n- **Consensus-Based Rankings**: Access digital assets ranked by financial metrics within specific consensus mechanisms, including POW, POS, and others.\n- **Customizable Sorting and Filtering**: Sort and filter assets based on metrics like market cap and trading volume within chosen consensus types.\n- **Multiple Consensus Mechanisms**: Explore different consensus mechanisms to gain a deeper understanding of asset performance within each model.\n- **Pagination Support**: Efficiently navigate large datasets with pagination, ensuring easy access to all relevant rankings.\n- **Real-Time Market Data**: Access current data for accurate analysis of assets grouped by consensus mechanism.\n- **Detailed Metadata**: Retrieve comprehensive metadata for each asset to support research and informed decision-making.\n\n### Use Cases\n- **Integration into Financial Tools**: Add ranked asset data by consensus mechanism to apps and websites, providing users with unique insights.\n- **Investment Analysis by Technology**: Identify trends and performance among assets within specific consensus models, such as POW vs. POS.\n- **Dashboard Development**: Build customizable dashboards displaying data filtered by consensus mechanism.\n- **Portfolio and Strategy Management**: Track and analyze portfolios by grouping assets under the same consensus mechanism.\n- **Automated Reporting**: Enable reporting systems to display trends and performance among assets using similar validation technologies.\n\n### Target Audiences\n- **Developers and Integrators**: Implement ranked asset data filtered by consensus into financial applications.\n- **Financial Institutions and Asset Managers**: Analyze consensus-based asset performance to inform technology-focused investment strategies.\n- **Exchanges**: Provide insights into asset rankings based on validation models, enhancing user decision-making.\n- **Media and Information Platforms**: Offer consensus-based rankings for readers interested in the technical aspects of market performance.\n- **Investors and Traders**: Use consensus-based metrics to guide investment decisions, focusing on preferred validation mechanisms.\n- **Researchers and Analysts**: Leverage data to study performance differences across various consensus mechanisms.\n\n### Data Handling Notes\n- **Data Volume**: Due to the vast number of assets across different consensus mechanisms, pagination is crucial for effective data handling.\n- **Efficient Retrieval**: Use sorting and filtering to target specific consensus mechanisms or high-ranking assets for efficient data analysis.\n- **Frequent Updates**: Consensus mechanism rankings fluctuate as market conditions change, so regular data refreshes are necessary for accuracy.\n- **Handling Missing Data**: If data is unavailable for certain consensus mechanisms, consider fallbacks or contact our support channels for assistance.\n\nBy using the Consensus Mechanism Toplist endpoint, users can obtain valuable insights into assets categorized by validation technology, supporting advanced market analysis and informed financial strategies across the cryptocurrency landscape.","tags":["Asset"],"operationId":"asset_v1_top_list_consensus_mechanism","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_top_list","x-endpoint-group-name":"Top List","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CIRCULATING_MKT_CAP_USD","enum":["CREATED_ON","LAUNCH_DATE","UPDATED_ON","PRICE_USD","CIRCULATING_MKT_CAP_USD","TOTAL_MKT_CAP_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD","SPOT_MOVING_24_HOUR_CHANGE_USD","SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_7_DAY_CHANGE_USD","SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_30_DAY_CHANGE_USD","SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD","TOTAL_ENDPOINTS_WITH_ISSUES"],"x-enum-properties-info":{"CREATED_ON":{"name":"Created On","description":"The Unix timestamp indicating when the asset was added to our system. Used for toplists to sort by the most recently added or the earliest added assets."},"LAUNCH_DATE":{"name":"Launch Date","description":"The Unix timestamp of the asset’s launch. For blockchains, this is the first block time; for tokens, it is the smart contract deployment time; for stocks, it is the company’s start date. Used to sort assets by their launch order."},"UPDATED_ON":{"name":"Updated On","description":"The Unix timestamp of the last manual update to the asset’s static data. Useful for tracking assets being worked on by the static data team."},"PRICE_USD":{"name":"Spot Price USD","description":"The asset price in USD, derived from the CADLI index. Used to sort assets by value, with optional conversion to other currencies. Includes conversion details such as rate and source."},"CIRCULATING_MKT_CAP_USD":{"name":"Circulating Market Cap USD","description":"Market capitalization based on circulating supply and the CADLI index price in USD. Use this field to rank assets by their circulating value. Convertible to other currencies with provided conversion data."},"TOTAL_MKT_CAP_USD":{"name":"Total Market Cap USD","description":"Market capitalization based on total supply and the CADLI index price in USD. Useful for ranking assets by their total value. Convertible to other currencies with conversion details included."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"24h Moving Top Tier Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Used for ranking by liquidity in high-quality markets."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"name":"24h Moving Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure overall spot market liquidity."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"name":"24h Moving Top Tier Spot Volume (USD)","description":"The 24-hour moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Used to rank assets by trading activity on high-quality platforms."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"name":"24h Moving Spot Volume (USD)","description":"The total 24-hour moving trading volume in USD across all spot markets, including converted values. Useful for evaluating overall liquidity and activity."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"name":"24h Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the last 24 hours on spot markets. Used to identify significant price movements."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"name":"24h Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the last 24 hours on spot markets. Useful for identifying relative price trends."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"7d Moving Top Tier Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for tracking weekly liquidity in high-quality markets."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"7d Moving Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure weekly overall spot market liquidity."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"7d Moving Top Tier Spot Volume (USD)","description":"The 7-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating weekly trading activity on high-quality platforms."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"name":"7d Moving Spot Volume (USD)","description":"The total 7-day moving trading volume in USD across all spot markets, including converted values. Useful for assessing weekly overall liquidity."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"name":"7d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 7 days on spot markets. Highlights weekly price fluctuations."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"name":"7d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 7 days on spot markets. Useful for identifying weekly relative price trends."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"30d Moving Top Tier Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for evaluating monthly liquidity on high-quality markets."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"30d Moving Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Useful for measuring monthly spot market liquidity."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"30d Moving Top Tier Spot Volume (USD)","description":"The 30-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating monthly trading activity on high-quality platforms."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"name":"30d Moving Spot Volume (USD)","description":"The total 30-day moving trading volume in USD across all spot markets, including converted values. Useful for analyzing monthly overall liquidity."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"name":"30d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 30 days on spot markets. Highlights significant monthly price changes."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"name":"30d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 30 days on spot markets. Useful for tracking monthly relative price trends."},"TOTAL_ENDPOINTS_WITH_ISSUES":{"name":"Endpoints with Issues","description":"The number of API endpoints reporting potential issues for the asset in the last 24 hours. Helps investigate problems in automatic data updates such as supply or social metrics."}}},"example":"CIRCULATING_MKT_CAP_USD"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"]},{"name":"toplist_quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"},{"name":"consensus_mechanism","in":"query","description":"This parameter can be used to filter the returned assets based on their consensus mechanism. Allowed values: POW,POS,POB,POC,POA,POET,POH,POE,PAXOS,RCM,OTHER_BFT,THE_TANGLE,POUW,POST,SCP","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["POW","POS","POB","POC","POA","POET","POH","POE","PAXOS","RCM","OTHER_BFT","THE_TANGLE","POUW","POST","SCP"],"x-enum-properties-info":{"POW":{"name":"Proof of Work","description":"The proof-of-work mechanism commences with the calculation of the hash value of the block header. The block header comprises a nonce that miners frequently modify to obtain different hash values. Hence, the consensus necessitates the earned value to remain within a particular bound. To maintain an agreement across the network concerning the propagation of new blocks, PoW imposes a complicated puzzle that needs to be resolved by cooperating nodes. Miners that overcome the puzzle will be granted access to append a new block. The puzzle preserves an adjusted difficulty and is confronted by estimating the nonce’s value. This value is incorporated with the block’s header information to feed the SHA-256 hash function. The hash function will then convert all inputs to generate the hash value. If the output of the hash function holds a value beneath an appointed threshold, the estimated nonce will be accepted, and the miner is allowed to append a block into the blockchain. Hence, whenever the objective value is acquired by a miner, it will accordingly broadcast the block throughout the network, and every single node within the entire network will be asked to confirm the authenticity of the hash value and append the corresponding block to their blockchain"},"POS":{"name":"Proof of Stake","description":"Proof of stake (PoS), which was initially proposed for Peercoin, has been used as an alternative to PoW to eliminate the excessive power consumption of nodes. Since the election of the block proposer based on the account balance seems unfair, many proposed solutions incorporate the stake size. Although PoS is energy efficient in comparison with PoW, it is not resilient to attacks. Accordingly, several blockchain solutions initially employ PoW and gradually transform to PoS"},"POB":{"name":"Proof of Burn","description":"Proof of burn has been proposed as an energy-efficient, sustainable alternative to PoW where miners use an irretrievable address to convey coins and burn them. The irretrievable address is referred to as an eater address and incorporates a public key that is not correlated with any private key to prevent coin retrieval. Once a coin is sent to the eater address, it is permanently eliminated from the network. In PoB, the miners do not invest in physical currency as the cryptocurrencies are burned intentionally to denote the investment in blockchain. Burning cryptocurrency generates virtual mining power; hence, the more coins a user burns in favour of the system, the more mining power it acquires. In addition, the miner, as mentioned above, is more likely to be appointed as the validator of the block. The notion behind PoB is similar to PoW as getting the title of mining a block in PoB bears a resemblance to purchasing computing resources in PoW. All transactions that indicate transferring coins to eater addresses are recorded, and SHA-256 is employed for the calculation of the burn hash concerning each transaction in the network. Eventually, the miner who holds the least assess of the burn hash attains the mining right"},"POC":{"name":"Proof of Capacity","description":"Proof of Capacity (also known as Proof of Space or Proof of Storage) is a consensus algorithm that is cheaper than PoW in terms of required computing infrastructure, as it requires the use of hard disks or cloud storage systems. It operates based on large stored data sets, known as parcels. Their multiplicity enhances the probability of mining a new block for the corresponding node. The proof of space is executed in two stages. The first stage is plotting, where the hard disk capacity that the miner has devoted is evaluated by incorporating Shabal hash function and plotting the hard disk. The hash function is then seeded using the miner’s ID and nonce. Mining is performed during the second stage. It refers to the most recent block on the chain to calculate the generation hash. The total number of scoops is then calculated by incorporating the hash module to generate the target value that also uses the outputs of the plotting stage. Afterwards, the network re-calculates the scoop for each hash to validate the deadlines for each miner. The miner that correlates the shortest published deadline generates the next block and receives a reward for the transaction. The advantage of PoSpace is its energy efficiency, as it does not impose high requirements on hardware. However, it is known to be susceptible to malware attacks, since its hashes are stored on a hard disk. This enhances the vulnerability of the data and risks of being tampered with. Spacecoin, Chia, and Burstcoin are a few of the many approaches that have incorporated PoSpace."},"POA":{"name":"Proof of Authority","description":"Proof of Authority has been proposed as an underlying consensus algorithm for permissioned blockchains. This algorithm substitutes a lighter message transmission scheme in comparison with the BFT algorithm, which has led to the superiority of this approach concerning its performance. There are two implementations of the PoA algorithm known as Aura and Clique, which was primitively implemented on Ethereum for private networks. Both Aura and Clique exploit a similar block proposal scheme in which the trusted authority such as the current mining leader proposes a new block. Afterwards, Aura performs the block acceptance procedure, which is not required in Clique implementation. PoA is executed in several time divisions and during each interval; the authorities alternate using round-robin to propose blocks. Each proposed block is accepted once its signed off by the majority of authorized entities. Moreover, the procedure of discerning authorities results in the centralised configuration of PoA, which makes this approach appropriate for private consortiums"},"POET":{"name":"Proof of Elapsed Time","description":"Proof of elapsed time is an underlying consensus mechanism which has been initially proposed by Intel to improve energy efficiency and eliminate the waste of resources. PoET is highly dependent on dedicated hardware to restrict cooperation and decentralization. PoET reaches consensus by the random election of block leaders where the winning odds are spread out evenly throughout the network, and each node holds the same chance of becoming the winner"},"POH":{"name":"Proof of History","description":"Proof of history has been introduced to tackle issues associated with intensive computation. This approach executes the SHA-256 hashing algorithm in a consecutive manner to exploit the output of each round as the corresponding input to the subsequent round. Leaders are in charge of confirmation and integration of each transaction with the prevalent hash. PoH is known to be energy efficient as it does not perform intensive mining procedures in comparison with traditional PoW. However, it leans towards wealthier leaders which results in a more centralized and deterministic process and requires more capacity due to consecutive execution of the hashing function"},"POE":{"name":"Proof of Existence","description":"Proof of existence as an online service exploits a decentralized certification SHA256. PoE permanently validates the existence of data by storing its cryptographic digest and the corresponding submission date using blockchain. This service can publicly prove the ownership of data without revealing the data itself. It also eliminates the requirements for trusting any central authority. This approach provides anonymity, privacy, and decentralized proof that does not rely on a single centralized entity. The application of PoE ranges from ensuring the integrity of documents, document time stamping, and denoting the ownership of data without disclosing the content. PoE, as a blockchain notary service, provides instant and secure validation of the existence of any document, agreement, or contract. Moreover, it implies rules to allow updates in the documents and keep track of the updates."},"PAXOS":{"name":"PAXOS","description":"As the very first proposed consensus algorithm, paxos facilitates the selection of a single value beneath the crash or faulty circumstances of the network. Paxos classifies the nodes into proposers, acceptors, and learners. Proposers provide a message indicating a proposal number and forward it to the acceptor. The proposal number is considered as a timeline throughout the process, in which the proposal with a higher number is the most recent update. The acceptor compares the acquired proposal number with the current known value, and only accepts the proposal if it is more recent. Afterward, the acceptor forwards a response message indicating whether the proposal has been accepted or rejected, corresponding proposal number, and all accepted values. The proposer is required to investigate whether the majority of acceptors have rejected the proposal or not. In case of rejection, the proposer updates the proposal number with the most recent value. Otherwise, the acceptor broadcasts the accepted value to all learners on the network. To reach consensus in paxos, the proposer should receive at least N/2 − 1 acceptances (N is the number of proposals) from the acceptors"},"RCM":{"name":"Ripple Consensus Mechanism","description":"XRP uses the Ripple Consensus Mechanism (RCM), which is a consensus algorithm based on server validation. The RCM is a distributed agreement protocol that is designed to ensure the integrity of the XRP Ledger and the transactions it contains. The RCM is an iterative consensus process that allows for asynchronous agreement among a set of validating servers. It uses a voting system to reach consensus on the order and content of transactions in the XRP Ledger. Each server votes on a transaction set, and if a supermajority of servers agree, the transaction set is accepted and added to the ledger."},"OTHER_BFT":{"name":"Other Byzantine Fault Tolerance","description":"Byzantine fault tolerance (BFT) is the property of a system that is able to resist the class of failures derived from the Byzantine Generals’ Problem. This means that a BFT system is able to continue operating even if some of the nodes fail or act maliciously."},"THE_TANGLE":{"name":"The Tangle","description":"The Tangle is a distributed ledger technology based on a Directed Acyclic Graph (DAG) structure which is used by IOTA to reach consensus. This allows for faster and more efficient transactions than traditional blockchain systems, as well as scalability. The Tangle is unique because it does not use miners or staking to reach consensus. Instead, it uses user validation to reach consensus and each transaction must approve two other transactions before it is confirmed. This makes the Tangle more secure and energy efficient than traditional blockchain systems."},"POUW":{"name":"Proof of Useful Work","description":"Proof-of-useful-work (PoUW) is a blockchain consensus protocol that uses dedicated hardware called \"node machines\" that are of the same standardized specification. The Network Nervous System (NNS) selects nodes by looking at the node provider, the data center the node is installed within, and its geography and jurisdiction. The hardware is used as the stake, creating a secure network of dedicated hardware that produces blocks through useful smart contract computations, allowing node providers to earn rewards."},"POST":{"name":"Proof of Storage","description":"Proof-of-Storage is the mechanism underpinning the Filecoin blockchain, which allows participants to prove their contribution of storage capacity to the network. This proof-of-storage construction is distinct from other blockchains that require computing power. It allows participants to guarantee (to a high tolerance) that they are contributing a given amount of storage, and also allows for efficient verification of a participant's storage of a particular piece of data, without requiring that one have a copy of the file itself. This proof takes the form of a probabilistic argument, rather than a concrete proof, as it is highly unlikely to be able to convince other participants that one is making a contribution one is not."},"SCP":{"name":"Stellar Consensus Protocol","description":"Stellar Consensus Protocol (SCP) is a consensus mechanism used by the Stellar network to reach agreement on transactions. Unlike Proof of Work or Proof of Stake, SCP relies on the agreement of trusted nodes to update the ledger. Each participating Stellar Core node decides what set of other nodes they want to trust, called a quorum set. A quorum is a set of nodes sufficient to reach an agreement. SCP prioritizes fault tolerance and safety over liveness, and uses federated voting to achieve agreement on transaction sets. SCP has three steps of federated voting: Vote, Accept, and Confirm. In the nomination protocol, candidate transaction sets are selected to be included in a ledger, and in the ballot protocol, the network ensures that the agreed-upon transaction set is included in the next ledger. SCP prioritizes the security and resiliency of the network over monetary rewards for validators."}}},"example":"POW"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TOPLIST_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/top/list/hashing-algorithm-type":{"get":{"summary":"Top List By Hashing Algorithm Type","description":"The Hashing Algorithm Type Toplist endpoint delivers ranked data on digital assets categorized by their hashing algorithms. By focusing on key financial metrics like market capitalization, trading volume, and price changes, this endpoint empowers users to examine and compare assets within specific algorithm types. Pagination enables smooth navigation of extensive data, making it easier to identify top performers across various hashing algorithm categories.","x-extended-description-with-markdown":"The Hashing Algorithm Type Toplist endpoint delivers ranked data on digital assets categorized by their hashing algorithms. By focusing on key financial metrics like market capitalization, trading volume, and price changes, this endpoint empowers users to examine and compare assets within specific algorithm types. Pagination enables smooth navigation of extensive data, making it easier to identify top performers across various hashing algorithm categories.\n\n### Key Features\n- **Algorithm-Based Rankings**: Access digital assets ranked by financial metrics within each hashing algorithm type, such as SHA_256, ETHASH, and others.\n- **Customizable Sorting and Filtering**: Sort and filter assets by financial performance within chosen hashing algorithm types.\n- **Wide Range of Algorithms**: Explore multiple hashing algorithm types to gain insights into market trends influenced by cryptographic methods.\n- **Pagination Support**: Efficiently browse large datasets with pagination, ensuring easy access to relevant rankings across different algorithms.\n- **Real-Time Market Data**: Obtain up-to-date market information for accurate analysis of assets grouped by hashing algorithm.\n- **Detailed Metadata**: Retrieve rich metadata for each asset, supporting research and integration.\n\n### Use Cases\n- **Integration into Financial Platforms**: Add hashing algorithm-based ranked data to apps and websites, providing users with insights based on cryptographic attributes.\n- **Algorithm-Focused Investment Analysis**: Compare and analyze assets using the same hashing algorithms to identify trends and performance drivers.\n- **Dashboard and Widget Development**: Develop dashboards and widgets to display algorithm-specific market data.\n- **Portfolio Strategy by Algorithm**: Group assets by hashing algorithm type in portfolios to assess performance within similar cryptographic models.\n- **Automated Reporting**: Enable reporting tools to provide regular updates on top assets within each hashing algorithm category.\n\n### Target Audiences\n- **Developers and Integrators**: Integrate algorithm-filtered rankings into applications for advanced financial analysis.\n- **Financial Institutions and Asset Managers**: Study algorithm-based asset performance to inform cryptography-focused investment strategies.\n- **Exchanges**: Offer users algorithm-based asset rankings, adding technical depth to trading platforms.\n- **Media and Information Platforms**: Deliver insights into assets ranked by hashing algorithm, catering to readers with a technical interest in market data.\n- **Investors and Traders**: Use algorithm-specific rankings to guide investment choices, focusing on preferred cryptographic methods.\n- **Cryptography Researchers**: Utilize this endpoint to examine asset performance and market trends across different hashing algorithms.\n\n### Data Handling Notes\n- **Handling Large Datasets**: Given the breadth of assets across various algorithms, pagination is essential for manageable data retrieval.\n- **Optimized Data Retrieval**: Sort and filter assets to focus on specific hashing algorithms or high-ranking assets for efficient data handling.\n- **Frequent Data Refresh**: Rankings based on hashing algorithms shift with market changes, so periodic updates are recommended to ensure accuracy.\n- **Addressing Incomplete Data**: If data for specific hashing algorithms is missing, use fallback strategies or contact our support channels for assistance.\n\nBy leveraging the Hashing Algorithm Type Toplist endpoint, users gain detailed insights into assets grouped by hashing algorithms, supporting advanced analysis, application development, and investment strategies in the ever-evolving cryptocurrency ecosystem.","tags":["Asset"],"operationId":"asset_v1_top_list_hashing_algorithm_type","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_top_list","x-endpoint-group-name":"Top List","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CIRCULATING_MKT_CAP_USD","enum":["CREATED_ON","LAUNCH_DATE","UPDATED_ON","PRICE_USD","CIRCULATING_MKT_CAP_USD","TOTAL_MKT_CAP_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD","SPOT_MOVING_24_HOUR_CHANGE_USD","SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_7_DAY_CHANGE_USD","SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_30_DAY_CHANGE_USD","SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD","TOTAL_ENDPOINTS_WITH_ISSUES"],"x-enum-properties-info":{"CREATED_ON":{"name":"Created On","description":"The Unix timestamp indicating when the asset was added to our system. Used for toplists to sort by the most recently added or the earliest added assets."},"LAUNCH_DATE":{"name":"Launch Date","description":"The Unix timestamp of the asset’s launch. For blockchains, this is the first block time; for tokens, it is the smart contract deployment time; for stocks, it is the company’s start date. Used to sort assets by their launch order."},"UPDATED_ON":{"name":"Updated On","description":"The Unix timestamp of the last manual update to the asset’s static data. Useful for tracking assets being worked on by the static data team."},"PRICE_USD":{"name":"Spot Price USD","description":"The asset price in USD, derived from the CADLI index. Used to sort assets by value, with optional conversion to other currencies. Includes conversion details such as rate and source."},"CIRCULATING_MKT_CAP_USD":{"name":"Circulating Market Cap USD","description":"Market capitalization based on circulating supply and the CADLI index price in USD. Use this field to rank assets by their circulating value. Convertible to other currencies with provided conversion data."},"TOTAL_MKT_CAP_USD":{"name":"Total Market Cap USD","description":"Market capitalization based on total supply and the CADLI index price in USD. Useful for ranking assets by their total value. Convertible to other currencies with conversion details included."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"24h Moving Top Tier Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Used for ranking by liquidity in high-quality markets."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"name":"24h Moving Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure overall spot market liquidity."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"name":"24h Moving Top Tier Spot Volume (USD)","description":"The 24-hour moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Used to rank assets by trading activity on high-quality platforms."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"name":"24h Moving Spot Volume (USD)","description":"The total 24-hour moving trading volume in USD across all spot markets, including converted values. Useful for evaluating overall liquidity and activity."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"name":"24h Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the last 24 hours on spot markets. Used to identify significant price movements."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"name":"24h Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the last 24 hours on spot markets. Useful for identifying relative price trends."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"7d Moving Top Tier Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for tracking weekly liquidity in high-quality markets."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"7d Moving Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure weekly overall spot market liquidity."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"7d Moving Top Tier Spot Volume (USD)","description":"The 7-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating weekly trading activity on high-quality platforms."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"name":"7d Moving Spot Volume (USD)","description":"The total 7-day moving trading volume in USD across all spot markets, including converted values. Useful for assessing weekly overall liquidity."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"name":"7d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 7 days on spot markets. Highlights weekly price fluctuations."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"name":"7d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 7 days on spot markets. Useful for identifying weekly relative price trends."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"30d Moving Top Tier Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for evaluating monthly liquidity on high-quality markets."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"30d Moving Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Useful for measuring monthly spot market liquidity."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"30d Moving Top Tier Spot Volume (USD)","description":"The 30-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating monthly trading activity on high-quality platforms."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"name":"30d Moving Spot Volume (USD)","description":"The total 30-day moving trading volume in USD across all spot markets, including converted values. Useful for analyzing monthly overall liquidity."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"name":"30d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 30 days on spot markets. Highlights significant monthly price changes."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"name":"30d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 30 days on spot markets. Useful for tracking monthly relative price trends."},"TOTAL_ENDPOINTS_WITH_ISSUES":{"name":"Endpoints with Issues","description":"The number of API endpoints reporting potential issues for the asset in the last 24 hours. Helps investigate problems in automatic data updates such as supply or social metrics."}}},"example":"CIRCULATING_MKT_CAP_USD"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"]},{"name":"toplist_quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"},{"name":"hashing_algorithm_type","in":"query","description":"This parameter can be used to filter the returned assets based on their hashing algorithm type. Allowed values: 1GB_AES_PATTERN_SEARCH_HODL,A5A_V2,AERGO,ALLIUM,ANONYPOW,ARGON2,ARGON2D,ARGON2I,ARGON2ID_CHUKWA,ARGON2M,ARTAXQ,ASTROBWT,AUTOLYKOS,AUTOLYKOS_V2,AXIOMHASH,BALLOON_HASHING,BCD,BEAMHASH_II,BEAMHASH_III,BEAMHASH_I_EQUIHASH_150_5,BLAKE,BLAKE2B,BLAKE2S,BLAKE_256,BLAKE_512,BLOCKSTAMP,BMW512,BTHASH,BURGERHASH,C11,CORTEX,CPUPOWER,CRYPTOHELLO,CRYPTONIGHT,CRYPTONIGHTDARK,CRYPTONIGHTFAST,CRYPTONIGHTHEAVY,CRYPTONIGHTLITE,CRYPTONIGHTLITEV1,CRYPTONIGHTR_CNV4,CRYPTONIGHTV7_CNV1,CRYPTONIGHTV8_CNV2,CRYPTONIGHT_ADAPTIVE,CRYPTONIGHT_CONCEAL,CRYPTONIGHT_CUSTOM,CRYPTONIGHT_GPU,CRYPTONIGHT_HEAVYX,CRYPTONIGHT_MOX,CRYPTONIGHT_PICO_TURTLE,CRYPTONIGHT_REVERSEWALTZ,CRYPTONIGHT_SOFT_SHELL,CRYPTONIGHT_WOW,CRYPTONIGHT_ZELERIUS,CRYPTOVANTAA,CUCKAROO29S,CUCKAROOD29,CUCKAROOD29V,CUCKAROOM29CR29_CUCKATOO31_32CT31_32,CUCKAROOM29_CR29,CUCKAROO_24,CUCKATOO31,CUCKOO29,CUNNINGHAM_CHAINS,CURL,DAGGERHASHIMOTO,DCRYPT,DEDAL,DEFYX,DGW,DOWS,EAGLESONG,EQUIHASH,EQUIHASH_125_4,EQUIHASH_144_5_ZHASH,EQUIHASH_192_7,EQUIHASH_210_9,EQUIHASH_96_5,EQUIHASH_96_5_MARS,ETCHASH,ETHASH,EXOSIS,FIROPOW,FRESH,GEEK,GRIMMPOW,GROESTL,GROSTL_512,HANDSHAKE,HEFTY1,HEX,HMQ1725,HONEYCOMB,JUMP_HASH,KANGAROOTWELVE_K12,KAWPOW,KECCAK,KECCAKC,KECCA_256,KECCA_512,KHEAVYHASH,LBK3,LBRY,LXRHASH,LYRA2RE,LYRA2REV2,LYRA2REV3,LYRA2VC0BAN,LYRA2Z,LYRA2Z330,LYRA2ZOIN,LYRA2ZZ,LYRA2_WEBCHAIN,M00N,M7M_V2,MD5,MINOTAUR,MTP,MYR_GROESTL,NEOSCRYPT,NIST5,OCTOPUS,ODOCRYPT,PASCAL_RANDOM_HASH,PGAP,PHI1612,PHI2,PIPE,PLUCK,POLYTIMOS,POWER2B,PRIME_CONSTELLATION,PRIME_SIX,PROGPOW,QKCHASH,QUARK,QUBIT,RAINFOREST_V2_RFV2,RANDOMARQ,RANDOMEVO,RANDOMSFX,RANDOMWOW,RANDOMX,RANDOMXHFPI,RANDOMXL,RENESIS,SCRYPT,SCRYPT2,SCRYPT_CHACHA,SCRYPT_N,SHA2_384,SHA3SOLIDITY,SHA3_256D,SHABAL256,SHA_224,SHA_256,SHA_256D,SHA_256Q,SHA_256T,SHA_256_AR,SHA_512,SIA,SIGMA,SIPHASH,SKEIN,SKEIN_SHA2,SKUNKHASH,SNOWBLOSSOM_CUSTOM,SOFTCRYPTON,SONOA,TENSORITY,TERAHASH,TETHASHV1,THOR_S_RIDDLE,TIMETRAVEL,TIMETRAVEL10,TRIBUS,TRIGGS_ALGORITHM,TRUEHASH,UBQHASH,ULTRANET,VBLAKE,VERUSHASH_10,VERUSHASH_20,WILD_KECCAK,X11,X11BINARIUM,X11EVO,X11GOST,X11SPREAD,X12,X13,X14,X15,X16R,X16RT,X16RV2,X16S,X17,X20R,X21S,X22I,X25X,XEVAN,XIROPHT,YESCRYPT,YESCRYPTR16,YESCRYPTR32,YESPOWER,Z16R,ZELHASH,ZILLIONFLUX","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["1GB_AES_PATTERN_SEARCH_HODL","A5A_V2","AERGO","ALLIUM","ANONYPOW","ARGON2","ARGON2D","ARGON2I","ARGON2ID_CHUKWA","ARGON2M","ARTAXQ","ASTROBWT","AUTOLYKOS","AUTOLYKOS_V2","AXIOMHASH","BALLOON_HASHING","BCD","BEAMHASH_II","BEAMHASH_III","BEAMHASH_I_EQUIHASH_150_5","BLAKE","BLAKE2B","BLAKE2S","BLAKE_256","BLAKE_512","BLOCKSTAMP","BMW512","BTHASH","BURGERHASH","C11","CORTEX","CPUPOWER","CRYPTOHELLO","CRYPTONIGHT","CRYPTONIGHTDARK","CRYPTONIGHTFAST","CRYPTONIGHTHEAVY","CRYPTONIGHTLITE","CRYPTONIGHTLITEV1","CRYPTONIGHTR_CNV4","CRYPTONIGHTV7_CNV1","CRYPTONIGHTV8_CNV2","CRYPTONIGHT_ADAPTIVE","CRYPTONIGHT_CONCEAL","CRYPTONIGHT_CUSTOM","CRYPTONIGHT_GPU","CRYPTONIGHT_HEAVYX","CRYPTONIGHT_MOX","CRYPTONIGHT_PICO_TURTLE","CRYPTONIGHT_REVERSEWALTZ","CRYPTONIGHT_SOFT_SHELL","CRYPTONIGHT_WOW","CRYPTONIGHT_ZELERIUS","CRYPTOVANTAA","CUCKAROO29S","CUCKAROOD29","CUCKAROOD29V","CUCKAROOM29CR29_CUCKATOO31_32CT31_32","CUCKAROOM29_CR29","CUCKAROO_24","CUCKATOO31","CUCKOO29","CUNNINGHAM_CHAINS","CURL","DAGGERHASHIMOTO","DCRYPT","DEDAL","DEFYX","DGW","DOWS","EAGLESONG","EQUIHASH","EQUIHASH_125_4","EQUIHASH_144_5_ZHASH","EQUIHASH_192_7","EQUIHASH_210_9","EQUIHASH_96_5","EQUIHASH_96_5_MARS","ETCHASH","ETHASH","EXOSIS","FIROPOW","FRESH","GEEK","GRIMMPOW","GROESTL","GROSTL_512","HANDSHAKE","HEFTY1","HEX","HMQ1725","HONEYCOMB","JUMP_HASH","KANGAROOTWELVE_K12","KAWPOW","KECCAK","KECCAKC","KECCA_256","KECCA_512","KHEAVYHASH","LBK3","LBRY","LXRHASH","LYRA2RE","LYRA2REV2","LYRA2REV3","LYRA2VC0BAN","LYRA2Z","LYRA2Z330","LYRA2ZOIN","LYRA2ZZ","LYRA2_WEBCHAIN","M00N","M7M_V2","MD5","MINOTAUR","MTP","MYR_GROESTL","NEOSCRYPT","NIST5","OCTOPUS","ODOCRYPT","PASCAL_RANDOM_HASH","PGAP","PHI1612","PHI2","PIPE","PLUCK","POLYTIMOS","POWER2B","PRIME_CONSTELLATION","PRIME_SIX","PROGPOW","QKCHASH","QUARK","QUBIT","RAINFOREST_V2_RFV2","RANDOMARQ","RANDOMEVO","RANDOMSFX","RANDOMWOW","RANDOMX","RANDOMXHFPI","RANDOMXL","RENESIS","SCRYPT","SCRYPT2","SCRYPT_CHACHA","SCRYPT_N","SHA2_384","SHA3SOLIDITY","SHA3_256D","SHABAL256","SHA_224","SHA_256","SHA_256D","SHA_256Q","SHA_256T","SHA_256_AR","SHA_512","SIA","SIGMA","SIPHASH","SKEIN","SKEIN_SHA2","SKUNKHASH","SNOWBLOSSOM_CUSTOM","SOFTCRYPTON","SONOA","TENSORITY","TERAHASH","TETHASHV1","THOR_S_RIDDLE","TIMETRAVEL","TIMETRAVEL10","TRIBUS","TRIGGS_ALGORITHM","TRUEHASH","UBQHASH","ULTRANET","VBLAKE","VERUSHASH_10","VERUSHASH_20","WILD_KECCAK","X11","X11BINARIUM","X11EVO","X11GOST","X11SPREAD","X12","X13","X14","X15","X16R","X16RT","X16RV2","X16S","X17","X20R","X21S","X22I","X25X","XEVAN","XIROPHT","YESCRYPT","YESCRYPTR16","YESCRYPTR32","YESPOWER","Z16R","ZELHASH","ZILLIONFLUX"],"x-enum-properties-info":{"1GB_AES_PATTERN_SEARCH_HODL":{"name":"1GB AES Pattern Search (HODL)","description":"As known as the \"HODL Memory-Hash\", 1GB AES Pattern Search Pattern Search involves filling up RAM with pseudo-random data, and then conducting a search for the start location of an AES encrypted data pattern in that data. Pattern Search is an evolution of the ProtoShares Momentum PoW, first used in MemoryCoin and later modified for use in CryptoNight(Monero,Bytecoin), Ethash(Ethereum). CPU/GPU friendly."},"A5A_V2":{"name":"A5A v2","description":"A5A v2 is a hashing algorithm to be mined with mobile devices."},"AERGO":{"name":"Aergo","description":"Aergo is an ASIC-resistant mining algorithm created by Itamar Carvalho, lead blockchain developer and founder of the AeriumX project."},"ALLIUM":{"name":"Allium","description":"Allium, a custom variation of the Lyra2 algorithm, is more memory intensive to prevent ASIC mining."},"ANONYPOW":{"name":"AnonyPoW","description":"AnonyPow is the Equihash 144_5 (ZHash) algorithm with argument -pers added, allowing for a personalized string of characters."},"ARGON2":{"name":"Argon2","description":"Argon2 is a key derivation function that was selected as the winner of the Password Hashing Competition in July 2015. It was designed by Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich from the University of Luxembourg. Argon2 is released under a Creative Commons CC0 license (i.e. public domain), and provides three related versions: Argon2d, Argon2i, Argon2id"},"ARGON2D":{"name":"Argon2d","description":"Argon2d maximizes resistance to GPU cracking attacks. It accesses the memory array in a password dependent order, which reduces the possibility of time–memory trade-off (TMTO) attacks, but introduces possible side-channel attacks."},"ARGON2I":{"name":"Argon2i","description":"Argon2i is optimized to resist side-channel attacks. It accesses the memory array in a password independent order."},"ARGON2ID_CHUKWA":{"name":"Argon2id (Chukwa)","description":"Argon2id is a variant of the Argon2 hashing algorithm."},"ARGON2M":{"name":"Argon2m","description":"Argon2m is a CPU mineable hashing algorithm."},"ARTAXQ":{"name":"ArtaxQ","description":"ArtaxQ is a custom Quark-Hash algorithm with a proprietary cipher as a secondary layer of security."},"ASTROBWT":{"name":"AstroBWT","description":"AstroBWT is an ASIC, FPGA and GPU resistant CPU mining algorithm."},"AUTOLYKOS":{"name":"Autolykos","description":"Autolykos is a Proof-of-Work algorithm designed to be ASIC and pool resistant. Miners have to perform memory-hard computations~(at least 4 GB memory is needed, but the current most efficient implementation utilizes between 8 GB of vRAM) that makes it friendly for GPU mining."},"AUTOLYKOS_V2":{"name":"Autolykos V2","description":"Autolykos v2 is an updated Proof-of-Work design that replaces Autolykos v1 after v1's anti-pooling (non-outsourceable) puzzles were shown to be bypassable by large miners using smart-contract collateral schemes. In v2, those puzzles are removed and the solver is optimized around a single large memory table (about ~2 GB initially) to make the most efficient mining approach strongly memory-bound and harder to \"optimize away.\" The required table size grows over time, and it depends only on block height, so miners can rebuild multiple block candidates at the same height without extra penalties."},"AXIOMHASH":{"name":"AxiomHash","description":"AxiomHash is based on RandMemoHash."},"BALLOON_HASHING":{"name":"Balloon Hashing","description":"The Balloon function is a memory-hard password-hashing function."},"BCD":{"name":"BCD","description":"BCD is a modified X13 hashing algorithm to prevent ASIC mining and includes the SM3 hash algorithm, issued by the Chinese Cryptography Administration in 2016."},"BEAMHASH_II":{"name":"BeamHash II","description":"BeamHash II is a proof-of-work algorithm based on EquihashR, with parameters n = 150, k = 5 and r = 3."},"BEAMHASH_III":{"name":"BeamHash III","description":"A valid BeamHash III solution is computed in six rounds with the first round being a seeding phase in which the algorithm is pseudo-randomly initialized using an element index and a global nonce nonce."},"BEAMHASH_I_EQUIHASH_150_5":{"name":"BeamHash I (Equihash 150_5)","description":"BEAM, also known as BeamHash I, is the Equihash algorithm using n=150 and k=5 as parameters."},"BLAKE":{"name":"BLAKE","description":"BLAKE and BLAKE2 are cryptographic hash functions based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with some round constants, is added before each ChaCha round."},"BLAKE2B":{"name":"BLAKE2b","description":"BLAKE2b (or just BLAKE2) is a hashing algorithm optimized for 64-bit platforms (including NEON-enabled ARMs) and produces digests of any size between 1 and 64 bytes."},"BLAKE2S":{"name":"BLAKE2s","description":"BLAKE2s is optimized for 8 to 32-bit platforms and produces digests of any size between 1 and 32 bytes."},"BLAKE_256":{"name":"BLAKE-256","description":"BLAKE repeatedly combines an 8-word hash value with 16 message words, truncating the ChaCha result to obtain the next hash value. BLAKE-256 uses 32-bit words and produce digest sizes of 256 bits."},"BLAKE_512":{"name":"BLAKE-512","description":"BLAKE is cryptographic hash function based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with some round constants, is added before each ChaCha round. BLAKE repeatedly combines an 8-word hash value with 16 message words, truncating the ChaCha result to obtain the next hash value. BLAKE-512 and BLAKE-384 use 64-bit words and produce digest sizes of 512 bits and 384 bits, respectively."},"BLOCKSTAMP":{"name":"blockstamp","description":"BlockStamp uses hashes of blocks beginning with the most significant bit set to one (0x80000000... instead of 0x00000000...)."},"BMW512":{"name":"BMW512","description":"BMW512 is a variant of Blue Midnight Wish hashing algorithm."},"BTHASH":{"name":"BTHash","description":"BTHash is an anti-ASIC and anti-Quantum hash mining algorithm."},"BURGERHASH":{"name":"BurgerHash","description":"BurgerHash, developed exclusively for CPU mining, is an evolving proof-of-work algorithm that is increased in complexity at fixed intervals."},"C11":{"name":"C11","description":"C11 uses 11 random algorithms chained together: BLAKE, BMW, GROESTL, JH, KECCAK, SKEIN, LUFFA, CUBEHASH, SHAVITE, SIMD AND ECHO."},"CORTEX":{"name":"Cortex","description":"Cortex provides “Synapse”, an integer inference engine to do deterministic AI inference with Cuckoo Cycle consensus mechanism, an ASIC-resistant framework due to the memory-intensive algorithm, yet with instant verification."},"CPUPOWER":{"name":"CPUpower","description":"CPUpower is a proof-of-work focused fork of Yescrypt password hashing algorithm. CPUpower is designed to be CPU-friendly, GPU-unfriendly, and FPGA and ASIC resistant."},"CRYPTOHELLO":{"name":"CryptoHello","description":"Developed by Ulord, CryptoHello is a CPU optimized algorithm, using multiple serial cryptographic primitive operations. With the characteristics of computer architecture, it has the mining characteristics of permanent ASIC resistance."},"CRYPTONIGHT":{"name":"CryptoNight","description":"CryptoNight, also known as CryptoNight Variant 0, is a proof-of-work algorithm."},"CRYPTONIGHTDARK":{"name":"CryptoNightDark","description":"CryptoNightDark is an ASIC-resistant algorithm. It features an upgraded 4 mb scratch pad."},"CRYPTONIGHTFAST":{"name":"CryptoNightFast","description":"CryptoNightFast (Variant 4)."},"CRYPTONIGHTHEAVY":{"name":"CryptoNightHeavy","description":"CryptoNightHeavy is a modified and ASIC-resistant CryptoNight algorithm."},"CRYPTONIGHTLITE":{"name":"CryptoNightLite","description":"CryptonightLite uses a smaller scratchpad for hashing, being more suitable for lower end processors."},"CRYPTONIGHTLITEV1":{"name":"CryptoNightLiteV1","description":"CryptoNight-Lite variant 1 (also known as CryptoNightLight) is a modification of CryptonightLite algorithm which adds a operations to the main loop and setup phases with the intent to break ASIC mining."},"CRYPTONIGHTR_CNV4":{"name":"CryptonightR (CNv4)","description":"CryptonightR (Cryptonight variant 4, or CNv4) is a mining algorithm chosen from instructions that are efficient on CPUs and GPUs compared to ASICs"},"CRYPTONIGHTV7_CNV1":{"name":"CryptoNightV7 (CNv1)","description":"Technically called CryptoNight Variant 1, CryptoNight v7 (as it's commonly referred to) is a modified and ASIC-resistant variant of the CryptoNight algorithm."},"CRYPTONIGHTV8_CNV2":{"name":"CryptoNightV8 (CNv2)","description":"CryptoNightV8 (technically called CryptoNight variant 2) is an ASIC-resistant hashing algorithm."},"CRYPTONIGHT_ADAPTIVE":{"name":"CryptoNight Adaptive","description":"CryptoNight Adaptive is a hash algorithm for CPU mining that changes automatically, at regular intervals, breaking support for ASICS, mining pools and GPU mining software."},"CRYPTONIGHT_CONCEAL":{"name":"Cryptonight Conceal","description":"Cryptonight Conceal (or CN Conceal) is a Cryptonight variant designed by Conceal developers with the intention of keeping the cryptocurrency Nicehash, ASICs, and FPGA resistant."},"CRYPTONIGHT_CUSTOM":{"name":"CryptoNight-Custom","description":"Custom and coin specific variant of the CryptoNight hashing algorithm with the intent to deter ASIC mining. Miners must check developer resources on each coin for accurate mining configuration."},"CRYPTONIGHT_GPU":{"name":"CryptoNight-GPU","description":"CryptoNight-GPU is a FPGA-proof proof-of-work algorithm based on floating point instructions aimed at GPU mining."},"CRYPTONIGHT_HEAVYX":{"name":"Cryptonight HeavyX","description":"Cryptonight HeavyX is a modified version of Cryptonight v8 (scratchpad of 2MB) with double the iterations, and some minor changes) for ASIC resistance."},"CRYPTONIGHT_MOX":{"name":"Cryptonight Mox","description":"Cryptonight Mox is a Cryptonight V8 variant with the intention to keep ASIC mining out of the network."},"CRYPTONIGHT_PICO_TURTLE":{"name":"CryptoNight-Pico (Turtle)","description":"CryptoNight-Pico is a modified version of the standard CryptoNight family that increases the speed at which hashes can be computed."},"CRYPTONIGHT_REVERSEWALTZ":{"name":"CryptoNight ReverseWaltz","description":"CryptoNight v8 ReverseWaltz is based on Waltz's number of iterations and a small change in shuffle operation."},"CRYPTONIGHT_SOFT_SHELL":{"name":"CryptoNight Soft Shell","description":"CryptoNight Soft Shell is an ASIC and FPGA resistant mining algorithm that uses a variable amount of resources, dynamically changing."},"CRYPTONIGHT_WOW":{"name":"Cryptonight Wow","description":"Cryptonight Wow (or CN/Wow) is a Cryptonight variant created by the Wownero developers."},"CRYPTONIGHT_ZELERIUS":{"name":"Cryptonight Zelerius","description":"Cryptonight Zelerius is another variation of Cryptonight V8."},"CRYPTOVANTAA":{"name":"CryptoVantaa","description":"CryptoVantaa is a hashing algorithm that is CPU friendly, GPU resistant and ASIC resistant."},"CUCKAROO29S":{"name":"CuckARoo29s","description":"CuckARoo29s is a Cucko Cycle variant and a GPU oriented mining algorithm."},"CUCKAROOD29":{"name":"Cuckarood29","description":"Cuckarood29 is a Cucko Cycle variant and a GPU oriented mining algorithm."},"CUCKAROOD29V":{"name":"CuckARood29v","description":"CuckARood29v is a Cucko Cycle variant and a GPU oriented mining algorithm."},"CUCKAROOM29CR29_CUCKATOO31_32CT31_32":{"name":"CuckARoom29(CR29)+CuckAToo31/32(CT31/32)","description":"CuckARoom29 is a GPU oriented mining algorithm and CuckAToo31+ (also known as AT31) and CuckAToo32 are ASIC-specific."},"CUCKAROOM29_CR29":{"name":"CuckARoom29 (CR29)","description":"Cuckaroom29 has 2^29 directed edges on 2^29 nodes, resulting in cycles of all possible lengths, including odd ones, and even including unicycles."},"CUCKAROO_24":{"name":"CuckAroo 24","description":"CuckAroo 24 is a variation of Cukoo Cycle."},"CUCKATOO31":{"name":"cuckAToo31","description":"cuckAToo31 is an ASIC-friendly mining algorithm."},"CUCKOO29":{"name":"Cuckoo29","description":"Cuckoo29 is an ASIC-resistant hashing algorithm from the Cuckoo Cycle family, which relies on the commodification of RAM to resist any advantage specialized hardware would have."},"CUNNINGHAM_CHAINS":{"name":"Cunningham chains","description":"A Cunningham chain, named after mathematician A. J. C. Cunningham, is a sequence of prime numbers."},"CURL":{"name":"Curl","description":"Curl is a cryptographic hash function used by IOTA to create the cryptographic signature for transactions. It is based on the sponge construction paradigm pioneered by the Keccak/SHA-3 cryptographic hash function, and works by taking an input of any size and then compressing it into an output of fixed length. The hash is then used to verify the integrity of the data and to ensure that it has not been tampered with. It is designed to be secure and scalable, and provides an efficient way to verify data within the IOTA network."},"DAGGERHASHIMOTO":{"name":"DaggerHashimoto","description":"Dagger Hashimoto aims to simultaneously satisfy two goals: ASIC-resistance and light client verifiability (a block should be relatively efficiently verifiable by a light client)."},"DCRYPT":{"name":"Dcrypt","description":"The Dcrypt algorithm is suitable for CPU mining and made to be difficult to implement on ASICs."},"DEDAL":{"name":"DEDAL","description":"DEDAL's hashing algorithm main goal is to be an ASIC/FPGA-resistant solution. The algorithm is based on the idea of multiplying hashing by different algorithms in a random order. This idea was originally implemented in X16r algorithm. The number of passes for obtaining the total hash is not fixed and depends only on the difficulty modifier of one or another algorithm that was used for hashing before the next pass. As a result, having reached a certain difficulty, the calculation of the block hash is deemed to have been completed."},"DEFYX":{"name":"DefyX","description":"DefyX is a proof-of-work algorithm that is optimized for general-purpose CPUs. DefyX uses random code execution together with several memory-hard techniques to minimize the efficiency advantage of specialized hardware."},"DGW":{"name":"Dark Gravity Wave","description":"Dark Gravity Wave (DGW) is an algorithm designed to adjust mining difficulty more responsively and frequently, typically at every block. It aims to maintain stable block times, enhance network security, and allow for quick adaptation to changes in mining power, addressing the limitations of the traditional difficulty adjustment mechanisms in PoW cryptocurrencies.        "},"DOWS":{"name":"DOWS","description":"DOWS (Dynamic Operations with Wide Sampling) is a CPU mineable algorithm."},"EAGLESONG":{"name":"Eaglesong","description":"Eaglesong is the hash function for Nervos CKB proof-of-work network."},"EQUIHASH":{"name":"Equihash","description":"Equihash is a memory-oriented proof-of-work algorithm developed by the University of Luxembourg's Interdisciplinary Centre for Security, Reliability and Trust (SnT). The commonly used parameters for Equihash are n=200 and k=9."},"EQUIHASH_125_4":{"name":"Equihash 125_4","description":"Equihash algorithm using n=125 and k=4 as parameters."},"EQUIHASH_144_5_ZHASH":{"name":"Equihash 144_5 (ZHash)","description":"ZHash is a variant of the Equihash algorithm. It uses n=144 and k=5 as parameters, requiring more memory to run, making it resistant to Equihash ASIC miners."},"EQUIHASH_192_7":{"name":"Equihash 192_7","description":"Equihash algorithm using n=192 and k=7 as parameters."},"EQUIHASH_210_9":{"name":"Equihash 210_9","description":"Equihash algorithm using n=210 and k=9 as parameters."},"EQUIHASH_96_5":{"name":"Equihash 96_5","description":"Equihash algorithm using n=96 and k=5 as parameters."},"EQUIHASH_96_5_MARS":{"name":"Equihash 96_5 (MARS)","description":"MARS is a modified Equihash algorithm with parameters n=96 and k=5."},"ETCHASH":{"name":"EtcHash","description":"Etchash is a heavyweight PoW algorithm used by Ethereum Classic. It uses the DAG file that is loaded into GPU memory at the moment of miner launch. An epoch change takes place every 60000 blocks and leads to an increase in size of the DAG file by 8 MB."},"ETHASH":{"name":"Ethash","description":"Ethash is the Proof-of-Work (PoW) algorithm popularized with Ethereum. It is an updated version of the Dagger-Hashimoto algorithm. Ethash was designed to require more memory, making it Application-Specific Integrated Circuit (ASIC) mining resistant."},"EXOSIS":{"name":"Exosis","description":"Exosis is a fork of the TimeTravel10 algorithm. It's an ASIC-resistant algorithm which is mineable with both CPUs and GPUs."},"FIROPOW":{"name":"FiroPoW","description":"The FiroPoW mining algorithm (a modified version of ProgPoW 0.9.4) is designed to utilize all parts of a GPU and includes a random sequence that changes every block to add further ASIC and FPGA resistance."},"FRESH":{"name":"Fresh","description":"Fresh is combination of Echo, Shavite and Simd algorithms, and consumes 15% to 20% less energy compared to X11, X13, X15."},"GEEK":{"name":"Geek","description":"Geek is a GPU mineable hashing algorithm."},"GRIMMPOW":{"name":"GrimmPOW","description":"GrimmPOW is an ASIC's resistant, based on Equihash 150_5."},"GROESTL":{"name":"Groestl","description":"Same as SHA-256, Grøstl – A SHA-3 candidate is initially designed as a general purpose security algorithm. Groestlcoin is the first cryptocurrency to utilize Grøstl as a Proof of Work hashing algorithm which is also known as Grostl and Groestl algorithm."},"GROSTL_512":{"name":"Grøstl-512","description":"Grøstl is a cryptographic hash function submitted to the NIST hash function competition by Praveen Gauravaram, Lars Knudsen, Krystian Matusiewicz, Florian Mendel, Christian Rechberger, Martin Schläffer, and Søren S. Thomsen. Grøstl was chosen as one of the five finalists of the competition."},"HANDSHAKE":{"name":"Handshake","description":"Handshake uses a hash algorithm combining BLAKE2b + SHA3."},"HEFTY1":{"name":"HEFTY1","description":"HEFTY1 combines SHA-256, Keccak-512, Grøestl-512, BLAKE-512 to fed off ASIC mining."},"HEX":{"name":"HEX","description":"The working principle of HEX is to calculate the block hash with a pseudo-random sequence of 16 different algorithms: BLAKE, BMW, GROESTL, JH, KECCAK, SKEIN, LUFFA, CUBEHASH, SHAVITE, SIMD, ECHO, HAMSI, FUGUE, SHABAL, WHIRLPOOL, SHA2."},"HMQ1725":{"name":"HMQ1725","description":"HMQ1725 is a GPU mineable algorithm and stands for Highly Modified Quark 17 Algorithms 25 Hash Rounds."},"HONEYCOMB":{"name":"HoneyComb","description":"HoneyComb is an ASIC-resistant hashing algorithm."},"JUMP_HASH":{"name":"Jump Hash","description":"Jump Hash constantly changes as blockchain’s data changes, selecting one hash algorithm from an algorithm pool which contains dozens of algorithms."},"KANGAROOTWELVE_K12":{"name":"KangarooTwelve (K12)","description":"KangarooTwelve is a fast and secure extendable-output function (XOF), the generalization of hash functions to arbitrary output lengths. Derived from Keccak, it aims at higher speeds than FIPS 202's SHA-3 and SHAKE functions, while retaining their flexibility and basis of security."},"KAWPOW":{"name":"KAWPOW","description":"KAWPOW is a variation of ProgPOW."},"KECCAK":{"name":"Keccak","description":"Keccak (pronounced as \"ketchak\"), also known as SHA-3, is a cryptographic function, best known as a hash function. It can also be used for authentication, (authenticated) encryption and pseudo-random number generation."},"KECCAKC":{"name":"KeccakC","description":"Keccak is a cryptographic function, best known as a hash function. It can also be used for authentication, (authenticated) encryption and pseudo-random number generation."},"KECCA_256":{"name":"Keccak 256","description":"Keccak-256, a cryptographic function, is part of Solidity (SHA-3 Family). This function computes the hash of an input to a fixed-length output, yielding a singular 32-byte hash from any number of inputs."},"KECCA_512":{"name":"Keccak 512","description":"Keccak-512 is a cryptographic hash function that is part of the SHA-3 (Secure Hash Algorithm 3) family of standards, released by NIST (National Institute of Standards and Technology) on August 5, 2015. It is a subset of the broader cryptographic primitive family Keccak. Keccak-512 uses a novel approach called sponge construction, which allows inputting any amount of data and outputting any amount of data while acting as a pseudorandom function with regard to all previous inputs."},"KHEAVYHASH":{"name":"kHeavyHash","description":"KHeavyHash algorithm is a slightly modified version of HeavyHash. KHeavyHash is core dominant but energy efficient. It can be successfully mined using GPUs. It is resistant towards ASICs and other special purpose mining devices."},"LBK3":{"name":"LBK3","description":"LBK3 randomizes three separate cryptographic functions: BMW, Lyra2Z and Keccak, making it ASIC mining resistant."},"LBRY":{"name":"LBRY","description":"LBRY uses a mix of SHA512, SHA256 and RIPEMD hash functions in its algorithm."},"LXRHASH":{"name":"LXRHash","description":"LXRHash uses an XOR/Shift random number generator coupled with a lookup table of randomized sets of bytes."},"LYRA2RE":{"name":"Lyra2RE","description":"Lyra2 is a key derivation function that received a special recognition during the Password Hashing Competition in July 2015. RE means Reduced Efficiency to make mining less power hungry."},"LYRA2REV2":{"name":"Lyra2REv2","description":"Lyra2RE version 2 (Reduced Efficiency) is a NIST5 based chained algorithm with customisable parameters and ASIC (Application Specific Integrated Circuit) mining resistance."},"LYRA2REV3":{"name":"Lyra2REv3","description":"Lyra2RE version 3 (Reduced Efficiency)."},"LYRA2VC0BAN":{"name":"Lyra2vc0ban","description":"Lyra2vc0ban is a modified and ASIC-resistant Lyra2 hashing algorithm."},"LYRA2Z":{"name":"Lyra2Z","description":"Lyra2z is a power efficient CPU and GPU mineable algorithm that uses Blake256 for the first round and Lyra2 for the final round."},"LYRA2Z330":{"name":"Lyra2z330","description":"Lyra2z330 is an ASIC-resistant and CPU mineable algorithm. Lyra2z330 is the Lyra2 algorithm with 2, 330, 256 used as parameters."},"LYRA2ZOIN":{"name":"Lyra2Zoin","description":"Zoin Lyra2 variant."},"LYRA2ZZ":{"name":"Lyra2zz","description":"Lyra2zz is an ASIC-resistant mining algorithm."},"LYRA2_WEBCHAIN":{"name":"Lyra2-Webchain","description":"Lyra2-Webchain is a custom variant of the Lyra2 hashing algorithm, designed specifically for MintMe.com Coin to promote egalitarian mining. It is memory-bound, utilizing a 6MB matrix to ensure RAM-heavy operations, which levels the playing field between different computational resources. This adaptation aims to minimize the efficiency gap between high-end and low-end hardware, making it more accessible for users with less powerful equipment and resistant to ASICs, supporting a fair distribution of mining rewards."},"M00N":{"name":"M00N","description":"M00N is an ASCI and GPU resistant algorithm, aimed at CPU mining."},"M7M_V2":{"name":"M7M (v2)","description":"CPU mining hashing algorithm."},"MD5":{"name":"MD5","description":"The MD5 algorithm is a widely used hash function producing a 128-bit hash value."},"MINOTAUR":{"name":"Minotaur","description":"Minotaur is a CPU mining algorithm and is design to deter GPU, FPGA, and ASIC mining. The algorithm dynamically configures a labyrinth of 21 interconnected nodes, each representing a different hash algorithm from a pool of sixteen types."},"MTP":{"name":"MTP","description":"MTP stands for Merkle Tree Proof. MTP is designed to make intensive use of memory and deter the development of ASIC mining hardware."},"MYR_GROESTL":{"name":"Myr-Groestl","description":"Myr-Groestl is a GPU mining algorithm."},"NEOSCRYPT":{"name":"NeoScrypt","description":"NeoScrypt is a modified version of Scrypt. It's more memory intensive combining Salsa20/20, ChaCha20/20, BLAKE2s and FastKDF into a secure ASIC resistant algorithm."},"NIST5":{"name":"Nist5","description":"Nist5 is a mining algorithm combining 5 hashing algorithms: Blake, Grøstl, JH, Keccak and Skein."},"OCTOPUS":{"name":"Octopus","description":"The Octopus algorithm is a memory-intensive mining algorithm used to mine Conflux (CFX). It is designed to be ASIC-resistant, which makes it more accessible to individual miners using standard hardware like GPUs. Its memory-intensive design also helps promote decentralization and provide sufficient security for the Conflux network."},"ODOCRYPT":{"name":"Odocrypt","description":"Odocrypt is a unique GPU / FPGA-friendly hashing algorithm made specifically for DigiByte that changes itself every 10 days as an anti-ASIC method."},"PASCAL_RANDOM_HASH":{"name":"Pascal (Random Hash)","description":"Random Hash adopts a low-memory, GPU and ASIC-resistant hash algorithm , making it optimal for CPU-only mining."},"PGAP":{"name":"pGap","description":"pGap is a prime numbers gap based hashing algorithm."},"PHI1612":{"name":"PHI1612","description":"PHI1612 is an energy-efficient, ASIC resistant hashing algorithm."},"PHI2":{"name":"PHI2","description":"PHI2 is a more energy efficient hashing algorithm than the one it is based on, the PHI1612 algorithm."},"PIPE":{"name":"Pipe","description":"Pipe is an ASIC and FPGA-resistant hashing algorithm."},"PLUCK":{"name":"PLUCK","description":"PLUCK is a memory hard hashing algorithm based on SHA256."},"POLYTIMOS":{"name":"Polytimos","description":"Polytimos combines several hashing algorithms: Skein, Shabal, Echo, Luffa, Fugue and Gost."},"POWER2B":{"name":"Power2b","description":"Power2b is a CPU-only mining algorithm derived from YesPower, replacing SHA256 with Blake2b."},"PRIME_CONSTELLATION":{"name":"Prime Constellation","description":"A prime constellation, also called a prime k-tuple, prime k-tuplet, or prime cluster, is a sequence of k consecutive numbers such that the difference between the first and last is, in some sense, the least possible."},"PRIME_SIX":{"name":"Prime Six","description":"Prime Six is a CPU friendly proof-of-work algorithm that verifies prime numbers. It works by locating dense clusters of prime numbers beginning at a number n, where there are six consecutive prime numbers: n, n+4, n+6, n+10, n+12, and n+16."},"PROGPOW":{"name":"ProgPoW","description":"ProgPoW (Programmatic Proof of Work) is a proof-of-work algorithm designed work with GPUs and make ASIC mining not as efficient."},"QKCHASH":{"name":"Qkchash","description":"Qkchash is a customized ASIC-resistant, CPU mining algorithm, developed by QuarkChain."},"QUARK":{"name":"Quark","description":"Quark is a lightweight cryptographic hash function, based on a single security level and on the sponge construction, to minimize memory requirements."},"QUBIT":{"name":"Qubit","description":"Qubit uses 5 rounds of hashing functions: Luffa, Cubehash, Shavite, Simd and Echo."},"RAINFOREST_V2_RFV2":{"name":"Rainforest v2 (RFv2)","description":"Rainforest v2 is a CPU friendly mining algorithm."},"RANDOMARQ":{"name":"RandomARQ","description":"RandomARQ is a proof-of-work (PoW) algorithm that is optimized for general-purpose CPUs."},"RANDOMEVO":{"name":"RandomEVO","description":"RandomEVO is a variation of RandomX hashing algorithm."},"RANDOMSFX":{"name":"RandomSFX","description":"RandomSFX is a fork of RandomX, a proof of work algorithm based on random code execution."},"RANDOMWOW":{"name":"RandomWOW","description":"RandomWOW is a custom implementation of the RandomX proof-of-work algorithm."},"RANDOMX":{"name":"RandomX","description":"RandomX is a proof-of-work algorithm that is optimized for general-purpose CPUs."},"RANDOMXHFPI":{"name":"RandomXHFPI","description":"RandomXHFPI (Heavy Floating Point Instructions) has more floating point instructions than RandomX"},"RANDOMXL":{"name":"RandomXL","description":"RandomXL is a modified version of RandomX. RandomX is a proof-of-work algorithm that is optimized for general-purpose CPUs."},"RENESIS":{"name":"Renesis","description":"The Renesis hash uses step forward and loop function on eight different hashing algorithm styles, increasing complexity and memory requirements to keep it ASIC-resistant."},"SCRYPT":{"name":"Scrypt","description":"Scrypt is a password-based key derivation function specifically designed to hinder large-scale custom hardware attacks by requiring large amounts of memory, making it a suitable ASCI-resistant hashing algorithm. The algorithm was popularized by Litecoin."},"SCRYPT2":{"name":"Scrypt²","description":"Scrypt² is a very memory-hard hashing algorithm as it is 1024x more memory hard than standard Scrypt with an N of 1024."},"SCRYPT_CHACHA":{"name":"Scrypt-ChaCha","description":"Scrypt-Chacha uses a progressive N-Factor determining the amount of memory required to solve a problem. As the N-Factor increases, the mining efficiency will lower, requiring more memory to complete the same task."},"SCRYPT_N":{"name":"Scrypt-N","description":"Scrypt-N relies on the “Adaptive N-Factor” in which N is the memory required to complete new hashing functions. The idea is that N (memory requirement) will always increase over time, rendering ASIC development unfeasible."},"SHA2_384":{"name":"SHA2-384","description":"SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA). SHA2-384 is a SHA-2 hash function with a digest value of 384 bits."},"SHA3SOLIDITY":{"name":"SHA3Solidity","description":"SHA3Solidity is an implementation of Keccak256."},"SHA3_256D":{"name":"SHA3-256d","description":"SHA-3 (Secure Hash Algorithm 3) is a member of the Secure Hash Algorithm family of standards, released by NIST in 2015, and is iterated twice (\"d\")."},"SHABAL256":{"name":"Shabal256","description":"Shabal is a heavy and slow hashing function in relation to SHA256."},"SHA_224":{"name":"SHA-224","description":"The SHA-2 family consists of six hash functions with digests (hash values) that are 224, 256, 384 or 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256."},"SHA_256":{"name":"SHA-256","description":"SHA-256 is a simple hashing algorithm. It's a single round of SHA-256, unlike SHA-256d popularized by Bitcoin."},"SHA_256D":{"name":"SHA-256d","description":"SHA-256d is the hashing algorithm popularized by Bitcoin. The \"d\" part of SHA-256d denotes the double of hash iterations (SHA256^2 or \"SHA256 function squared\")."},"SHA_256Q":{"name":"SHA-256Q","description":"SHA-256Q is a GPU mineable and ASIC-resistant hashing algorithm."},"SHA_256T":{"name":"SHA-256T","description":"Triple SHA-256 hashing algorithm."},"SHA_256_AR":{"name":"SHA-256-AR","description":"SHA-256-AR is an ASIC resistant mining algorithm."},"SHA_512":{"name":"SHA-512","description":"SHA-512 uses 64-bit words instead of 32-bit like SHA-256."},"SIA":{"name":"Sia","description":"Sia is a modified BLAKE2b mining algorithm specific for ASIC mining hardware."},"SIGMA":{"name":"SIGMA","description":"Semi Iterated Global Memory Argon is an ASIC and GPU resistant, CPU mining algorithm."},"SIPHASH":{"name":"Siphash","description":"SipHash is an add–rotate–xor (ARX) based family of pseudorandom functions created by Jean-Philippe Aumasson and Daniel J. Bernstein in 2012, in response to a spate of \"hash flooding\" denial-of-service attacks (HashDoS) in late 2011."},"SKEIN":{"name":"Skein","description":"Skein is a cryptographic hash function and one of five finalists in the NIST hash function competition."},"SKEIN_SHA2":{"name":"Skein-SHA2","description":"On Skein-SHA2, the first round of hashing is done using Skein and the second using SHA256."},"SKUNKHASH":{"name":"SkunkHash","description":"SkunkHash hashing function combines 4 algorithms: Skein, Cubehash, Fague and Gost."},"SNOWBLOSSOM_CUSTOM":{"name":"SnowBlossom Custom","description":"A Proof-of-Work function that uses a large deterministically generated file as part of the calculation. This is done by having the miners reference large deterministic Snow Fields that have a known merkle root hash."},"SOFTCRYPTON":{"name":"SoftCrypton","description":"SoftCrypton is a modified version of the CryptoNight hashing algorithm."},"SONOA":{"name":"SonoA","description":"SonoA is a hashing algorithm developed by zPools. It hashes through 17 SHA3 candidates. It was inspired by inspired by the X11 and X17 algorithms and it's ASIC-resistant."},"TENSORITY":{"name":"Tensority","description":"Tensority is an ASIC-friendly proof of work algorithm based on Tensor created for Bytom's mainnet."},"TERAHASH":{"name":"TERAhash","description":"TERAhash is a mining algorithm combining SHA3 and optimizing RAM hashing."},"TETHASHV1":{"name":"TETHashV1","description":"TETHashV1 (Trust Ethash Version1) is based on ETHASH, but unsuitable to ASIC mining."},"THOR_S_RIDDLE":{"name":"Thor's Riddle","description":"Thor's Riddle combines 4 hashing functions: Shavite, Skein, Shabal and Gost."},"TIMETRAVEL":{"name":"TimeTravel","description":"TimeTravel is based on 40320 different combinations of hashing algorithms and can be extended to 362880, 3628800 or even more."},"TIMETRAVEL10":{"name":"TimeTravel10","description":"TimeTravel10, also known as Bitcore, is an ASIC-resistant mining algorithm."},"TRIBUS":{"name":"Tribus","description":"Tribus (latin for three) is the Proof of Work hashing algorithm used in Denarius. Tribus consists of three cryptography algorithms that were featured in the NIST5: JH, Keccak, and Echo."},"TRIGGS_ALGORITHM":{"name":"Trigg’s Algorithm","description":"Trigg’s Algorithm is a proof-of-work algorithm that produces poetry instead of hashes to solve blocks and is ASIC-resistant."},"TRUEHASH":{"name":"TrueHash","description":"Truehash is the mining algorithm for TrueChain and is a fundamentally ASIC-resistant algorithm."},"UBQHASH":{"name":"UBQhash","description":"UBQhash is a GPU mineable algorithm. It creates a totally incompatible version of DAG files by using a different hash function on the cache."},"ULTRANET":{"name":"Ultranet","description":"Ultranet is a composition of three different hash functions (namely scrypt, sha256, and sha3)."},"VBLAKE":{"name":"vBlake","description":"vBlake is a Proof-of-Work hashing algorithm. It's a tweaked version of the BLAKE2b algorithm."},"VERUSHASH_10":{"name":"VerusHash 1.0","description":"VerusHash is a cryptographic hash algorithm allowing mining with x64 CPUs while equalizing GPUs and offering an ASIC solution."},"VERUSHASH_20":{"name":"VerusHash 2.0","description":"VerusHash is a cryptographic hash algorithm allowing mining with x64 CPUs while equalizing GPUs and offering an ASIC solution."},"WILD_KECCAK":{"name":"Wild Keccak","description":"Wild Keccak is a Blockchain-based PoW hash."},"X11":{"name":"X11","description":"X11 is a hashing algorithm with 11 rounds of scientific hashing functions: Blake, BMW, Groestl, JH, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo."},"X11BINARIUM":{"name":"X11Binarium","description":"X11Binarium is a modified X11 algorithm, using additional hash and encryption functions, polymorphic protection from ASICs (algorithm reconfigures itself, based on block data) and memory hard hashing function, which makes it costly to implement ASICs and reduces efficiency on multi-core architectures (GPUs and multi-core processors)."},"X11EVO":{"name":"X11Evo","description":"The X11Evo hashing algorithm is based on twisting X11 algorithms."},"X11GOST":{"name":"X11Gost","description":"X11 with added Streebog hashing function. Streebog is a cryptographic hash function defined in the Russian national standard GOST R 34.11-2012 Information Technology – Cryptographic Information Security – Hash Function."},"X11SPREAD":{"name":"X11Spread","description":"X11Spread is different from plain X11 by introducing a sophisticated pool prevention mechanism."},"X12":{"name":"X12","description":"X12 is a hashing algorithm with 12 rounds of hashing functions: Blake, Bmw, Groestl, Jh, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo and Ocean."},"X13":{"name":"X13","description":"X13 is a hashing algorithm with 13 rounds of hashing functions: Blake, Bmw, Groestl, Jh, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo, Hamsi, Fugue."},"X14":{"name":"X14","description":"X14 is a hashing algorithm with 14 rounds of hashing functions: Blake, Bmw, Groestl, Jh, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo, Hamsi, Fugue, Shabal."},"X15":{"name":"X15","description":"X15 is a combination of 15 algorithms: BLAKE, BMW, GROESTL, JH, KECCAK, SKEIN, LUFFA, CUBEHASH, SHAVITE, SIMD, ECHO, HAMSI, FUGUE, SHABAL, WHIRLPOOL."},"X16R":{"name":"X16R","description":"X16R is intended to prevent immediate dominance by mining pools, and future dominance by ASIC mining equipment."},"X16RT":{"name":"X16RT","description":"X16RT is based on Ravencoin's X16R mining algorithm with further modifications to deter FPGA mining capability."},"X16RV2":{"name":"X16Rv2","description":"X16R version 2 adds the algorithm Tiger into three seperate parts of the X16R algo. The Tiger hash is performed before the algorithms Luffa512, Keccak512, and SHA512."},"X16S":{"name":"X16S","description":"X16S shuffles a list of sixteen algorithms to keep hashing rates consistent."},"X17":{"name":"X17","description":"X17 is a hashing algorithm with 17 rounds of hashing functions: Blake, Bmw, Groestl, Jh, Keccak, Skein, Luffa, Cubehash, Shavite, Simd, Echo, Hamsi, Fugue, Shabal, Whirlpool, Loselose, Djb2."},"X20R":{"name":"X20R","description":"X20R is based on X16R, with the inclusion of algorithms haval, gost, radiogatun and panama."},"X21S":{"name":"X21S","description":"X21S is 16 shuffled algorithms, followed by 5 other rounds."},"X22I":{"name":"X22i","description":"X22i is a quantum, ASIC, FPGA-resistant, GPU mineable and power efficient hash algorithm."},"X25X":{"name":"X25X","description":"X25X is CPU and GPU mineable, and ensures ASIC, FPGA and QUANTUM resistance."},"XEVAN":{"name":"Xevan","description":"The Xevan Hash Algorithm is a combination from the dual X17 Difficulty Algorithm with an extension to 128 bits."},"XIROPHT":{"name":"Xiropht","description":"Xiropht is a specialized algorithm for mining XIRO."},"YESCRYPT":{"name":"Yescrypt","description":"Yescrypt is a password-based key derivation function (KDF) and password hashing scheme."},"YESCRYPTR16":{"name":"YescryptR16","description":"YescryptR16 is a CPU mineable and ASIC-resistant hashing algorithm."},"YESCRYPTR32":{"name":"YescryptR32","description":"YescryptR32 is a CPU mineable and ASIC-resistant hashing algorithm."},"YESPOWER":{"name":"YesPoWer","description":"YesPoWer is a proof-of-work focused fork of Yescrypt, which in turn builds upon Scrypt."},"Z16R":{"name":"Z16R","description":"Z16R is a modified X16R CPU mining algorithm."},"ZELHASH":{"name":"ZelHash","description":"ZelHash is an Equihash 125_4 variant with some tweaks to discourage both FPGA bitstream and single-chip ASIC development."},"ZILLIONFLUX":{"name":"ZillionFLUX","description":"ZillionFLUX is a mining algorithm allowing for ZillionCoin in-wallet CPU mining."}}},"example":"SHA_256"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TOPLIST_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/top/list/smart-contract-support-type":{"get":{"summary":"Top List By Smart Contract Support Type","description":"The Smart Contract Support Type Toplist endpoint delivers ranked data on digital assets grouped by their level of smart contract support. By focusing on critical financial metrics like market capitalization, trading volume, and price changes, this endpoint allows users to examine and compare assets based on their programmability. Pagination is employed to facilitate smooth navigation, enabling efficient analysis of assets with and without smart contract functionality.","x-extended-description-with-markdown":"The Smart Contract Support Type Toplist endpoint delivers ranked data on digital assets grouped by their level of smart contract support. By focusing on critical financial metrics like market capitalization, trading volume, and price changes, this endpoint allows users to examine and compare assets based on their programmability. Pagination is employed to facilitate smooth navigation, enabling efficient analysis of assets with and without smart contract functionality.\n\n### Key Features\n- **Smart Contract-Based Rankings**: Access digital assets ranked by financial metrics within each category of smart contract support, from programmable platforms to non-programmable assets.\n- **Customizable Sorting and Filtering**: Sort and filter assets by performance metrics within specific categories of smart contract support.\n- **Diverse Support Types**: Explore assets across various smart contract support levels to gain insights into how programmability impacts asset performance.\n- **Pagination Support**: Efficiently navigate large datasets with pagination, making it easy to view top-ranked assets within each smart contract category.\n- **Real-Time Market Data**: Receive up-to-date information for accurate analysis of assets grouped by their smart contract capabilities.\n- **Detailed Metadata**: Obtain comprehensive metadata for each asset to support in-depth research and application integration.\n\n### Use Cases\n- **Integration into Financial Platforms**: Add rankings by smart contract support type to financial tools, providing users with insights into the programmability of different assets.\n- **Programmability-Focused Analysis**: Compare and analyze assets based on their ability to support smart contracts, identifying performance trends influenced by programmability.\n- **Dashboard and Widget Development**: Build dashboards and widgets displaying data filtered by smart contract support type.\n- **Portfolio Strategy by Smart Contract Capability**: Group assets by smart contract support in portfolios to analyze performance across programmable and non-programmable assets.\n- **Automated Reporting**: Enable automated reporting tools to provide regular updates on assets grouped by their smart contract support type.\n\n### Target Audiences\n- **Developers and Integrators**: Integrate smart contract support-filtered rankings into applications, adding a programmability dimension to financial analysis.\n- **Financial Institutions and Asset Managers**: Monitor performance within programmable vs. non-programmable assets to shape technology-focused investment strategies.\n- **Exchanges**: Offer users rankings by smart contract support, adding another layer of data for informed trading decisions.\n- **Media and Information Platforms**: Provide readers with insights into assets ranked by smart contract support type, catering to those interested in programmable finance.\n- **Investors and Traders**: Use smart contract support metrics to guide investment decisions, focusing on the potential and capabilities of programmable assets.\n- **Blockchain Developers**: Leverage data on programmable assets to research and identify platforms with robust smart contract ecosystems.\n\n### Data Handling Notes\n- **Data Volume Management**: With multiple categories of smart contract support, pagination is essential for efficient data retrieval.\n- **Optimized Data Retrieval**: Sort and filter assets within smart contract categories to focus on specific support types or top-ranked assets for efficient data handling.\n- **Frequent Data Refresh**: Rankings based on smart contract support can change with market shifts, so periodic updates are crucial for maintaining accuracy.\n- **Handling Missing Data**: In cases where certain support types lack complete data, consider fallback strategies or reach out to support channels for assistance.\n\nBy using the Smart Contract Support Type Toplist endpoint, users gain valuable insights into assets based on their programmability, enhancing market analysis, application development, and investment strategies within the cryptocurrency landscape.","tags":["Asset"],"operationId":"asset_v1_top_list_smart_contract_support_type","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_top_list","x-endpoint-group-name":"Top List","parameters":[{"name":"page","in":"query","description":"The page number for the request to get {page_size} coins at the time.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":1000},"example":1},{"name":"page_size","in":"query","description":"The number of items returned per page.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":100,"minimum":10,"maximum":100},"example":10},{"name":"sort_by","in":"query","description":"Sort by field.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"CIRCULATING_MKT_CAP_USD","enum":["CREATED_ON","LAUNCH_DATE","UPDATED_ON","PRICE_USD","CIRCULATING_MKT_CAP_USD","TOTAL_MKT_CAP_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD","SPOT_MOVING_24_HOUR_CHANGE_USD","SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_7_DAY_CHANGE_USD","SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD","SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD","SPOT_MOVING_30_DAY_CHANGE_USD","SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD","TOTAL_ENDPOINTS_WITH_ISSUES"],"x-enum-properties-info":{"CREATED_ON":{"name":"Created On","description":"The Unix timestamp indicating when the asset was added to our system. Used for toplists to sort by the most recently added or the earliest added assets."},"LAUNCH_DATE":{"name":"Launch Date","description":"The Unix timestamp of the asset’s launch. For blockchains, this is the first block time; for tokens, it is the smart contract deployment time; for stocks, it is the company’s start date. Used to sort assets by their launch order."},"UPDATED_ON":{"name":"Updated On","description":"The Unix timestamp of the last manual update to the asset’s static data. Useful for tracking assets being worked on by the static data team."},"PRICE_USD":{"name":"Spot Price USD","description":"The asset price in USD, derived from the CADLI index. Used to sort assets by value, with optional conversion to other currencies. Includes conversion details such as rate and source."},"CIRCULATING_MKT_CAP_USD":{"name":"Circulating Market Cap USD","description":"Market capitalization based on circulating supply and the CADLI index price in USD. Use this field to rank assets by their circulating value. Convertible to other currencies with provided conversion data."},"TOTAL_MKT_CAP_USD":{"name":"Total Market Cap USD","description":"Market capitalization based on total supply and the CADLI index price in USD. Useful for ranking assets by their total value. Convertible to other currencies with conversion details included."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"24h Moving Top Tier Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Used for ranking by liquidity in high-quality markets."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"name":"24h Moving Spot Volume (Direct, USD)","description":"The 24-hour moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure overall spot market liquidity."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"name":"24h Moving Top Tier Spot Volume (USD)","description":"The 24-hour moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Used to rank assets by trading activity on high-quality platforms."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"name":"24h Moving Spot Volume (USD)","description":"The total 24-hour moving trading volume in USD across all spot markets, including converted values. Useful for evaluating overall liquidity and activity."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"name":"24h Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the last 24 hours on spot markets. Used to identify significant price movements."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"name":"24h Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the last 24 hours on spot markets. Useful for identifying relative price trends."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"7d Moving Top Tier Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for tracking weekly liquidity in high-quality markets."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"7d Moving Spot Volume (Direct, USD)","description":"The 7-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Used to measure weekly overall spot market liquidity."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"7d Moving Top Tier Spot Volume (USD)","description":"The 7-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating weekly trading activity on high-quality platforms."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"name":"7d Moving Spot Volume (USD)","description":"The total 7-day moving trading volume in USD across all spot markets, including converted values. Useful for assessing weekly overall liquidity."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"name":"7d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 7 days on spot markets. Highlights weekly price fluctuations."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"name":"7d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 7 days on spot markets. Useful for identifying weekly relative price trends."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"name":"30d Moving Top Tier Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD on top-tier spot markets. Useful for evaluating monthly liquidity on high-quality markets."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"name":"30d Moving Spot Volume (Direct, USD)","description":"The 30-day moving trading volume in USD for instruments directly quoted in USD across all spot markets. Useful for measuring monthly spot market liquidity."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"name":"30d Moving Top Tier Spot Volume (USD)","description":"The 30-day moving trading volume in USD across all instruments on top-tier spot markets, including converted values. Useful for evaluating monthly trading activity on high-quality platforms."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"name":"30d Moving Spot Volume (USD)","description":"The total 30-day moving trading volume in USD across all spot markets, including converted values. Useful for analyzing monthly overall liquidity."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"name":"30d Moving Spot Price Change (USD)","description":"The absolute change in the asset’s USD price over the past 30 days on spot markets. Highlights significant monthly price changes."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"name":"30d Moving Spot Price Change (%)","description":"The percentage change in the asset’s USD price over the past 30 days on spot markets. Useful for tracking monthly relative price trends."},"TOTAL_ENDPOINTS_WITH_ISSUES":{"name":"Endpoints with Issues","description":"The number of API endpoints reporting potential issues for the asset in the last 24 hours. Helps investigate problems in automatic data updates such as supply or social metrics."}}},"example":"CIRCULATING_MKT_CAP_USD"},{"name":"sort_direction","in":"query","description":"Sort direction.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"DESC","enum":["DESC","ASC"],"x-enum-properties-info":{"DESC":{"name":"Desc","description":"Sorts items in descending order, from highest to lowest."},"ASC":{"name":"Asc","description":"Sorts items in ascending order, from lowest to highest."}}},"example":"DESC"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":["ID","BASIC","SUPPLY","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK"]},{"name":"toplist_quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"},{"name":"smart_contract_support_type","in":"query","description":"This parameter can be used to filter the returned assets based on their smart contract support type. Allowed values: NO_VERIFIABLE_SUPPORT,THIRD_PARTY_ONLY,BASIC_LOGIC_AND_SCRIPTING,ADVANCED_EXECUTION_RIGHTS,FULL_AUTONOMY","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","enum":["NO_VERIFIABLE_SUPPORT","THIRD_PARTY_ONLY","BASIC_LOGIC_AND_SCRIPTING","ADVANCED_EXECUTION_RIGHTS","FULL_AUTONOMY"],"x-enum-properties-info":{"NO_VERIFIABLE_SUPPORT":{"name":"No Verifiable Support","description":"Assets with claims of smart contract capabilities that are not verifiable or currently non-existent."},"THIRD_PARTY_ONLY":{"name":"Third-Party Support Only","description":"Assets that rely on other platforms to provide smart contract functionalities, without native capabilities."},"BASIC_LOGIC_AND_SCRIPTING":{"name":"Basic Logic and Scripting","description":"Assets capable of executing simple programmable operations natively, like Bitcoin, and may leverage other platforms for additional functionalities."},"ADVANCED_EXECUTION_RIGHTS":{"name":"Advanced Execution Rights","description":"Assets capable of executing any code within specific limits such as compute, gas, memory, or financial constraints, and can integrate with or leverage other platforms' capabilities for complex dApps and smart contracts."},"FULL_AUTONOMY":{"name":"Full Autonomy","description":"Represents assets with unrestricted smart contract capabilities, offering full autonomy and no execution limits, indicative of future or theoretical blockchain technology advancements."}}},"example":"ADVANCED_EXECUTION_RIGHTS"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TOPLIST_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/search":{"get":{"summary":"Asset Search","description":"The Asset Search endpoint provides comprehensive search functionality within the asset database, allowing users to retrieve assets based on symbols, names, or IDs. It supports both textual and numerical queries, intelligently prioritizing exact matches and relevance to deliver precise search results, enhancing user exploration and asset discovery.","x-extended-description-with-markdown":"The Asset Search endpoint provides comprehensive search functionality within the asset database, allowing users to retrieve assets based on symbols, names, or IDs. It supports both textual and numerical queries, intelligently prioritizing exact matches and relevance to deliver precise search results, enhancing user exploration and asset discovery. The response format offers rich data, including asset type, ID, symbol, URI, public availability, name, logo URL, and various other attributes that facilitate a thorough understanding of each asset's characteristics and market standing.\n\n### Key Features\n- **Advanced Search Capabilities**: Retrieve assets using symbols, names, or IDs with support for both textual and numerical queries.\n- **Intelligent Prioritization and Sorting**: Implements sophisticated ranking logic that prioritizes exact matches and considers market capitalization to deliver the most relevant results.\n- **Default Top Assets Retrieval**: When no search string is provided, the endpoint returns top assets by market capitalization, aiding in market insights without specific queries.\n- **Comprehensive Asset Data**: Access detailed information for each asset, including type, symbol, name, logo URL, market cap, and attributes like HAS_SMART_CONTRACT_CAPABILITIES and ROOT_ASSET_TYPE.\n- **Optimized User Experience**: Enhances asset discovery by efficiently sorting and presenting assets based on relevancy and market significance.\n\n### Use Cases\n- **Integration into Financial Platforms**: Enhance financial websites and applications with robust asset search functionality to improve user engagement.\n- **Market Research and Analysis**: Empower analysts and researchers to retrieve precise asset data for in-depth market studies and reporting.\n- **Investment and Trading Tools**: Assist investors and traders in quickly finding and evaluating assets to make informed decisions.\n- **Educational Resources**: Provide educational platforms with advanced search capabilities to facilitate learning and research in the cryptocurrency space.\n- **Customizable Search Widgets**: Develop widgets for websites that require live asset data and search functionalities to enhance user interaction.\n\n### Target Audiences\n- **Developers and Integrators**: Implement advanced search features into applications, enhancing functionality and user experience.\n- **Financial Institutions and Exchanges**: Improve asset discovery on trading platforms, aiding users in finding and trading cryptocurrencies efficiently.\n- **Investors and Traders**: Access precise and relevant asset information quickly to inform trading strategies and investment decisions.\n- **Educational Institutions and Media Platforms**: Offer readers and learners precise search tools to access detailed cryptocurrency asset information.\n- **Market Analysts and Researchers**: Utilize intelligent search functionality to access prioritized asset data for comprehensive market analysis.\n\nBy leveraging the Asset Search endpoint, users can optimize asset discovery and enhance their platforms with intelligent search functionality, catering to a wide range of applications in the dynamic digital asset ecosystem.\n\n**Notes on 'Intelligent Prioritization and Sorting' Logic:**\n- **Empty search_string**: When no search_string is provided, the endpoint defaults to delivering the top assets by market capitalization, up to the specified limit. This functionality ensures that users can still discover valuable assets and gain insights into the market's leading entities, even in the absence of a specific query.\n- **Exact Asset ID Match**: Results with a search_string exactly matching an asset's ID (interpreted as an integer) are given the highest priority.\n- **Exact Symbol Match**: The second ranking criteria is based on exact symbol match but with a caviat. When a user inputs a search_string such as \"ET\" or \"BIT,\" the search functionality employs a sophisticated logic to prioritize results, focusing on exact symbol matches. If the search_string is textual and the first asset in the search results precisely matches the search_string, the algorithm assesses the market capitalizations of the top two assets. If the second asset—whether it's Bitcoin in the case of \"BIT\" or \"ETH\" when the search is \"ET\"—has a higher market capitalization than both a predefined threshold and the first asset's market cap, their positions are swapped. This approach ensures that for searches like \"ET\" and \"BIT,\" the system prioritizes assets like \"ETH\" and Bitcoin, not solely based on exact textual matches but also considering their market prominence. Consequently, if a user searches for \"BIT\" and finds a lesser-known asset with the symbol \"BIT\" and Bitcoin, or searches for \"ET\" and finds \"ET\" and \"ETH,\" the system will elevate Bitcoin or \"ETH\" in the results, reflecting their significant market relevance and aligning with probable user intent in a unified, efficient operation.\n- **Symbol Match with High Market Cap**: Symbols starting with the search_string and having a circulating market cap over 10 million USD are ranked third.\n- **Name Match with High Market Cap**: Names containing the search_string and with a circulating market cap over 10 million USD are ranked fourth.\n- **Partial Symbol Match**: Assets with symbols partially matching the search_string (starting with it) are ranked fifth.\n- **Combined Symbol and Name Partial Match**: Assets with symbols partially matching the search_string anywhere and names starting with the search_string are ranked sixth.\n- **Broad Match for Symbol and Name**: Assets with symbols or names that broadly match the search_string anywhere are ranked seventh.\n- **All Other Matches**: Assets not fitting the above criteria are ranked last.\n\nFollowing this prioritization, assets are further ordered by their circulating market capitalization in descending order. This ensures that, within each priority level, assets of higher economic value are presented first, aiding in a more nuanced and efficient asset discovery process. This logic is designed to optimize the search experience, allowing users to find relevant assets quickly based on ID, symbol, name, and market significance.","tags":["Asset"],"operationId":"asset_v1_search","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":5,"x-visible-in-ai":true,"x-endpoint-group-id":"asset_v1_search_group","x-endpoint-group-name":"Search","parameters":[{"name":"search_string","in":"query","description":"The search_string parameter enables users to search assets by symbols, names, or IDs, offering flexibility in query handling. For textual inputs, it matches against the start of symbols and anywhere in names, case-insensitively, with a priority on exact symbol matches. Numerical inputs trigger a search against asset IDs, prioritizing exact matches, followed by symbol and name matches based on their relevance and the asset's market capitalization.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100}},{"name":"limit","in":"query","description":"The number of search results to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SEARCH_RESULT_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/summary/list":{"get":{"summary":"Summary List","description":"The Asset Summary List endpoint efficiently retrieves a summarized list of all digital assets, grouped by their respective asset types. It provides essential information for each asset, including the ID, SYMBOL, ASSET_TYPE, NAME, and LOGO_URL. Designed for straightforward and fast access to basic asset details, this endpoint is particularly useful for applications requiring a quick overview of a large number of assets without delving into more complex data.","x-extended-description-with-markdown":"The Asset Summary List endpoint efficiently retrieves a summarized list of all digital assets, grouped by their respective asset types. It provides essential information for each asset, including the ID, SYMBOL, ASSET_TYPE, NAME, and LOGO_URL. Designed for straightforward and fast access to basic asset details, this endpoint is particularly useful for applications requiring a quick overview of a large number of assets without delving into more complex data.\n\n### Key Features\n- **Summarized Asset Listing**: Provides a comprehensive list of digital assets grouped by asset type, enabling quick identification and categorization.\n- **Essential Asset Information**: Includes key details such as ID, SYMBOL, ASSET_TYPE, NAME, and LOGO_URL for each asset.\n- **Efficient Data Retrieval**: Optimized for speed and simplicity, allowing fast access to basic asset details without complex queries.\n- **Grouped by Asset Type**: Organizes assets by their respective types, facilitating easier navigation and analysis.\n- **Lightweight Response**: Delivers essential data with minimal overhead, suitable for applications where performance is critical.\n\n### Use Cases\n- **User Interface Enhancement**: Quickly retrieve asset names and logos to display in user interfaces, dashboards, or applications, improving user experience.\n- **Symbol to Name Mapping**: Map trading symbols to asset names and types for reporting, analytics, or integration purposes.\n- **Bulk Data Overview**: Obtain a concise overview of a large number of assets without needing detailed data, useful for initial analysis or selection.\n- **Reporting and Analytics**: Incorporate essential asset information into reports or analytical tools, enhancing clarity and relevance.\n- **Development and Testing**: Use the endpoint for rapid prototyping or testing where basic asset data is required.\n\n### Target Audiences\n- **Developers and Integrators**: For applications needing quick access to basic asset information for interface elements or data mapping.\n- **Financial Analysts and Researchers**: Require a high-level overview of digital assets for market analysis or reporting.\n- **UI/UX Designers**: Enhance user interfaces with accurate asset names and logos.\n- **Portfolio Management Tools**: Display essential information for multiple assets efficiently.\n- **Educational Platforms**: Provide users with a straightforward list of assets for learning purposes.\n\nBy leveraging the Asset Summary List endpoint, users can efficiently access fundamental information about a wide range of digital assets through a single API call. This streamlined access enhances operational efficiency, supports rapid development, and improves user engagement in applications dealing with multiple cryptocurrencies.","tags":["Asset"],"operationId":"asset_v1_summary_list","x-section":"Asset","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_summary_list","x-endpoint-group-name":"Summary List","parameters":[{"name":"asset_type","in":"query","description":"This parameter can be used to filter the returned assets based on their type. Allowed values: BLOCKCHAIN,FIAT,TOKEN,STOCK,INDEX,COMMODITY or it can be left empty to get all types.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","enum":["BLOCKCHAIN","TOKEN","FIAT","STOCK","INDEX","COMMODITY","ETF","BOND","REIT","FUND",""],"x-enum-properties-info":{}}},{"name":"filters","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["HAS_CODE_REPOSITORIES","HAS_SUBREDDITS","HAS_TWITTER_ACCOUNTS","HAS_DISCORD_SERVERS","HAS_TELEGRAM_GROUPS","HAS_SUPPORTED_PLATFORMS","IS_SUPPORTING_OTHER_ASSETS"],"x-enum-properties-info":{}}},"example":[]},{"name":"assets","in":"query","description":"Specify a list of digital assets for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":200,"items":{"type":"string"}},"example":[],"x-search-dropdown-type":"assets"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SUMMARY_LIST_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/events":{"get":{"summary":"Significant Asset Events","description":"The Asset Events endpoint retrieves an array of significant events related to digital assets, such as security incidents, rebrandings, blockchain forks, and other impactful developments. Events are returned in chronological order, with the most recent events appearing first.","x-extended-description-with-markdown":"The Asset Events endpoint retrieves an array of significant events related to digital assets, including system security breaches, rebrandings, blockchain forks, and other impactful developments. Events are returned in chronological order, with the most recent events appearing first.\n\n### Key Features\n- **Comprehensive Event Coverage**: Access a wide range of significant events affecting digital assets, classified into specific categories for easier analysis and understanding.\n- **Detailed Event Information**: Each event includes additional JSON fields providing further data granularity, offering insights into the nature, impact, and specifics of the event.\n- **Chronological Ordering**: Events are presented with the most recent first, ensuring users receive timely updates relevant to current market conditions.\n- **Categorized Event Types**: Events are categorized into predefined types, aiding in filtering and focusing on specific areas of interest.\n\n### Use Cases\n- **Risk Assessment and Management**: Monitor security incidents and other critical events to assess risks associated with specific digital assets.\n- **Market Analysis and Research**: Analyze the impact of events like forks, rebrandings, and supply changes on asset performance and market dynamics.\n- **Investment Decision-Making**: Stay informed about significant developments that may influence investment strategies.\n- **Compliance and Due Diligence**: Utilize detailed event data for regulatory compliance and thorough due diligence processes.\n\n### Target Audiences\n- **Investors and Traders**: Stay updated on events that could affect asset valuations and market movements.\n- **Market Analysts and Researchers**: Access detailed event information for comprehensive market analysis and reporting.\n- **Risk Management Professionals**: Assess and mitigate risks associated with digital assets by monitoring security incidents and other critical events.\n- **Compliance Officers and Legal Professionals**: Ensure adherence to regulations and perform due diligence by leveraging detailed event data.\n\nBy leveraging the Asset Events endpoint, users can access timely and detailed information on significant events affecting digital assets, enhancing their ability to make informed decisions and stay ahead in the dynamic cryptocurrency market.\n\n**Notes on Event Categories: Types of events**\n- **Security Incident**: An event compromising the confidentiality, integrity, or availability of data, causing potential damage or unauthorized access to systems.\n- **Hard Fork**:A software change leading to an updated, incompatible chain, resulting in two separate operating chains or a complete migration to a new chain. This can be contentious, leading to a contentious hard fork, which results in the creation of a spin-off token.\n- **Soft Fork**: A backward-compatible software update. No new chain is formed, but users are encouraged to upgrade to access new features.\n- **Ticker Change**: An event where an asset's ticker symbol is changed, such as from BCC to BCH, often reflecting broader changes.\n- **Migration**: Transferring tokens between chains or contracts, possibly involving token splits or consolidations.\n- **Supply Burn**: Permanent removal of tokens from circulation by transferring them to an inaccessible address, reducing total supply.\n- **Supply Lock**: Temporary restriction of tokens by transferring them to a secured account, effectively reducing available supply.\n- **Asset Split**: Increases the number of tokens outstanding, effectively reducing the price per token without changing the overall market capitalization. Similar to a token split.\n- **Reverse Asset Split**: Consolidates existing tokens into fewer tokens, increasing the value per token but keeping the total market capitalization unchanged, similar to a reverse stock split.\n- **Token Listing**: Event related to the listing of a token on a centralized exchange.\n- **Token Delisting**: Event related to the delisting of a token from a centralized exchange.\n- **Network Control Change**: Significant shifts in governance or stakeholder composition, potentially due to strategic investments or other major changes.\n- **Other**: Covers any events that do not fit into the predefined categories.","tags":["Asset"],"operationId":"asset_v1_events","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_events","x-endpoint-group-name":"Events","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"limit","in":"query","description":"The number of events to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":100}},{"name":"to_ts","in":"query","description":"Returns events before this unix timestamp. If you want to get all the available events, you can use limit=100 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=100&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_EVENTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/historical/code-repository/days":{"get":{"summary":"Historical Social Code Repository Day","description":"The Historical Social Metrics Code Repository Day endpoint provides an in-depth, daily snapshot of a digital asset's code repositories. It is invaluable for gauging developer activity, community engagement, and the asset's overall health.","x-extended-description-with-markdown":"The Historical Social Metrics Code Repository Day endpoint provides an in-depth, daily snapshot of a digital asset's code repositories. It is invaluable for gauging developer activity, community engagement, and the asset's overall health.\n\n### Key Features\n- **Developer Activity Metrics**: Access daily metrics such as the number of commits, code additions, and deletions, reflecting ongoing development efforts.\n- **Community Engagement**: Metrics like 'Total Contributors,' 'Total Subscribers,' 'Total Stars,' and 'Total Forks' collectively provide a nuanced view of the size, involvement, and popularity of the developer and user community.\n- **Project Management Insights**: Open and closed 'Issues' and 'Pull Requests' offer insights into the project's operational efficiency and the rate at which changes are proposed and integrated.\n- **Historical Data Tracking**: Analyze trends over time to understand the evolution of the project's development.\n\n### Use Cases\n- **Developers and Contributors**: Monitor repository activity to decide on contributing or integrating with the project.\n- **Investors and Analysts**: Assess project vitality by analyzing developer engagement and community support, informing investment decisions.\n- **Project Managers**: Track development progress and community contributions to manage resources effectively.\n- **Market Researchers**: Correlate code repository activity with market performance for comprehensive research reports.\n\n### Target Audiences\n- **Blockchain Developers**: Evaluate projects for potential collaboration or contribution opportunities.\n- **Financial Analysts**: Use development activity as a metric for assessing project viability and growth potential.\n- **Investors and Traders**: Gain insights into technical progress to inform trading and investment strategies.\n- **Media and Information Platforms**: Provide readers with detailed insights into the development activity of digital assets.\n\nBy leveraging the Code Repository Metrics Day endpoint, users can access actionable and insightful metrics for various stakeholders, offering a comprehensive view of a digital asset's development landscape.","tags":["Asset"],"operationId":"asset_v1_historical_code_repository_days","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string","enum":["ID","GENERAL","ACTIVITY","SOURCE"],"x-enum-properties-info":{}}},"example":["ID","GENERAL","ACTIVITY"]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated code repository metrics before this unix timestamp. If you want to get all the available code repository metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_CODE_REPOSITORIES_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/historical/discord/days":{"get":{"summary":"Historical Social Discord Days","description":"The Historical Social Metrics Discord Days endpoint aggregates detailed daily metrics from all Discord servers related to a specific digital asset, offering a multifaceted view into community engagement and the asset's standing within Discord communities.","x-extended-description-with-markdown":"The Historical Social Metrics Discord Days endpoint aggregates detailed daily metrics from all Discord servers related to a specific digital asset, offering a multifaceted view into community engagement and the asset's standing within Discord communities.\n\n### Key Features\n- **Community Size and Activity**: Combines 'Total Members' and 'Total Current Active Users' to provide insights into both the size of the community and its activity level, gauging engagement and potential influence.\n- **Premium Engagement**: Includes the 'Total Premium Subscribers' metric to indicate the number of users financially invested in the community, serving as an additional indicator of community health and commitment.\n- **Daily Aggregated Data**: Provides daily snapshots of community metrics, allowing users to track trends and changes over time.\n- **Comprehensive Coverage**: Collects data from all associated Discord servers, ensuring a complete overview of the asset's presence and engagement on the platform.\n\n### Use Cases\n- **Community Management**: Asset developers and community managers can monitor engagement levels, assess the effectiveness of community initiatives, and identify opportunities to increase participation.\n- **Investor Analysis**: Investors can evaluate the health and growth of an asset's community as part of their due diligence and investment decision-making process.\n- **Market Research**: Analysts and researchers can study community trends to predict market movements and assess the popularity of digital assets.\n- **Competitive Analysis**: Compare community engagement metrics across different assets to identify market leaders and emerging trends.\n\n### Target Audiences\n- **Asset Developers and Community Managers**: For monitoring and enhancing community engagement strategies.\n- **Investors and Traders**: To inform investment decisions based on community activity and sentiment.\n- **Market Analysts and Researchers**: For in-depth analysis of community trends and their impact on the market.\n- **Marketing and PR Professionals**: To gauge the effectiveness of marketing campaigns and identify key engagement metrics.\n\nBy leveraging the Historical Social Metrics Discord Days endpoint, stakeholders gain a comprehensive view of an asset's social engagement on Discord, providing valuable insights into community dynamics and asset popularity.","tags":["Asset"],"operationId":"asset_v1_historical_discord_days","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"ETH","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string","enum":["ID","GENERAL","ACTIVITY","SOURCE"],"x-enum-properties-info":{}}},"example":["ID","GENERAL","ACTIVITY"]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated discord metrics before this unix timestamp. If you want to get all the available discord metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_DISCORD_SERVERS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/historical/reddit/days":{"get":{"summary":"Historical Social Reddit Day","description":"The Reddit Historical Daily Metrics endpoint aggregates key performance indicators from all the subreddits related to a specific digital asset, providing a comprehensive understanding of the asset's footprint on Reddit—a critical channel for community engagement and public sentiment in the digital asset industry.","x-extended-description-with-markdown":"The Reddit Historical Daily Metrics endpoint aggregates key performance indicators from all the subreddits related to a specific digital asset, providing a comprehensive understanding of the asset's footprint on Reddit—a critical channel for community engagement and public sentiment in the digital asset industry.\n\n### Key Features\n- **Community Activity Metrics**: Access metrics such as 'Total Active Users', 'Total Average Posts Per Day/Per Hour', and 'Total Average Comments Per Day/Per Hour' to gauge how engaged and active the Reddit community is in discussing and interacting with the asset.\n- **Subscriber Base Insight**: The 'Total Subscribers' field offers a measure of the asset's overall popularity and potential reach within the Reddit community.\n- **Historical Data Tracking**: Analyze trends over time to understand the evolution of community engagement, helping predict market sentiment and potential asset performance.\n- **Comprehensive Reddit Coverage**: Aggregates data from all associated subreddits, ensuring a complete overview of the asset's presence and engagement on the platform.\n\n### Use Cases\n- **Market Sentiment Analysis**: Traders and analysts can assess public sentiment towards a digital asset, informing trading strategies and investment decisions.\n- **Community Engagement Monitoring**: Asset developers and community managers can track the effectiveness of their engagement strategies on Reddit.\n- **Research and Reporting**: Include Reddit engagement metrics in market research reports for a holistic view of asset performance.\n- **Competitive Analysis**: Compare community engagement metrics across different assets to identify market leaders and emerging trends.\n\n### Target Audiences\n- **Investors and Traders**: Make informed decisions based on community sentiment and engagement levels.\n- **Market Analysts and Researchers**: Utilize social engagement data for comprehensive market analysis and reporting.\n- **Asset Developers and Community Managers**: Monitor and enhance community engagement strategies on Reddit.\n- **Marketing and PR Professionals**: Gauge the effectiveness of marketing campaigns and identify key engagement metrics.\n\nBy leveraging the Reddit Historical Daily Metrics endpoint, stakeholders gain a multi-dimensional understanding of community interaction and engagement on Reddit, offering valuable insights into the asset's popularity and public sentiment within the cryptocurrency community.","tags":["Asset"],"operationId":"asset_v1_historical_reddit_days","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string","enum":["ID","GENERAL","ACTIVITY","SOURCE"],"x-enum-properties-info":{}}},"example":["ID","GENERAL","ACTIVITY"]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated reddit metrics before this unix timestamp. If you want to get all the available reddit metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SUBREDDITS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/historical/telegram/days":{"get":{"summary":"Historical Social Telegram Day","description":"The Telegram Historical Daily Metrics endpoint collates essential data points across all Telegram groups affiliated with a particular cryptocurrency asset. Telegram often serves as a primary hub for real-time community engagement, announcements, and discussions in the crypto ecosystem.","x-extended-description-with-markdown":"The Telegram Historical Daily Metrics endpoint collates essential data points across all Telegram groups affiliated with a particular cryptocurrency asset. Telegram often serves as a primary hub for real-time community engagement, announcements, and discussions in the crypto ecosystem.\n\n### Key Features\n- **Community Size Monitoring**: Provides the 'Total Members' metric, capturing the overall size of the community engaged on Telegram, serving as an indicator of the asset's popularity and reach.\n- **Daily Aggregated Data**: Offers daily snapshots of community metrics, allowing users to track trends and changes over time.\n- **Comprehensive Coverage**: Collects data from all associated Telegram groups, ensuring a complete overview of the asset's presence and engagement on the platform.\n- **Engagement Insights**: Helps in understanding the level of interaction within the community, which can be a predictor of market sentiment and asset performance.\n\n### Use Cases\n- **Community Engagement Analysis**: Asset developers and community managers can monitor the growth and engagement levels of their Telegram communities.\n- **Investor Insight**: Investors can assess the popularity and community support of a digital asset by examining its Telegram group metrics.\n- **Market Research**: Analysts can include Telegram engagement data in their research to gauge public interest and potential market movements.\n- **Competitive Benchmarking**: Compare Telegram community sizes across different assets to identify market trends and emerging leaders.\n\n### Target Audiences\n- **Asset Developers and Community Managers**: Monitor and enhance Telegram community engagement strategies.\n- **Investors and Traders**: Inform investment decisions based on community size and engagement levels.\n- **Market Analysts and Researchers**: Utilize Telegram metrics for comprehensive market analysis and reporting.\n- **Marketing and PR Professionals**: Assess the effectiveness of marketing campaigns and community outreach efforts on Telegram.\n\nBy leveraging the Telegram Historical Daily Metrics endpoint, stakeholders gain valuable insights into an asset's community engagement on Telegram, providing a snapshot of its popularity and potential influence within the cryptocurrency ecosystem.","tags":["Asset"],"operationId":"asset_v1_historical_telegram_days","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"SOL","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL"],"items":{"type":"string","enum":["ID","GENERAL","SOURCE"],"x-enum-properties-info":{}}},"example":["ID","GENERAL"]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated telegram group metrics before this unix timestamp. If you want to get all the available telegram group metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TELEGRAM_GROUPS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/historical/twitter/days":{"get":{"summary":"Historical Social X(Twitter) Day","description":"The X (Twitter) Historical Daily Metrics endpoint aggregates essential metrics from all X (Twitter) accounts associated with a specific cryptocurrency asset. X (Twitter) is a key platform for real-time updates, announcements, and community engagement in the digital asset industry.","x-extended-description-with-markdown":"The X (Twitter) Historical Daily Metrics endpoint aggregates essential metrics from all X (Twitter) accounts associated with a specific cryptocurrency asset. X (Twitter) is a key platform for real-time updates, announcements, and community engagement in the digital asset industry.\n\n### Key Features\n- **Community Influence**: The Total Followers data point serves as an indicator of how much attention or influence the asset has within the X (Twitter) ecosystem.\n- **Engagement Metrics**: Metrics such as Total Favourites and Total Statuses provide insights into the account's level of activity and engagement with its followers.\n- **List Membership**: The Total Lists metric indicates how many curated lists the asset's X (Twitter) account has been included in, signifying its relevance or influence within specific X (Twitter) communities.\n- **Historical Data Tracking**: Offers daily snapshots of social metrics, allowing users to analyze trends over time and assess the growth or decline in community engagement.\n\n### Use Cases\n- **Market Analysis and Research**: Analysts can assess public sentiment and engagement levels to predict market movements and inform reports.\n- **Social Media Strategy**: Community managers and social media strategists can monitor the effectiveness of their campaigns and engagement strategies on X (Twitter).\n- **Investor Insights**: Investors can evaluate the popularity and community support of a digital asset by examining its X (Twitter) metrics.\n- **Competitive Benchmarking**: Compare the social media presence of different assets to identify market leaders and emerging trends.\n\n### Target Audiences\n- **Market Analysts and Researchers**: Utilize social engagement data for comprehensive market analysis and reporting.\n- **Community Managers and Social Media Strategists**: Monitor and enhance engagement strategies on X (Twitter).\n- **Investors and Traders**: Make informed decisions based on community influence and engagement metrics.\n- **Marketing and PR Professionals**: Assess the effectiveness of marketing campaigns and public relations efforts on social media platforms.\n\nBy leveraging the X (Twitter) Historical Daily Metrics endpoint, stakeholders gain a panoramic view of an asset's footprint and engagement levels on X (Twitter), providing valuable insights into its popularity and influence within the cryptocurrency community.","tags":["Asset"],"operationId":"asset_v1_historical_twitter_days","x-section":"Asset","x-roles-required":["free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL or the CoinDesk internal asset ID. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string","enum":["ID","GENERAL","ACTIVITY","SOURCE"],"x-enum-properties-info":{}}},"example":["ID","GENERAL","ACTIVITY"]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS or CoinDesk internal asset IDSs. Note that asset SYMBOLS may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"}}},"example":"SYMBOL"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TWITTER_ACCOUNTS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/asset/v1/metadata":{"get":{"summary":"Full Asset Metadata","description":"The /asset/v1/metadata endpoint is deprecated and has been replaced by /asset/v2/metadata. The migration to the /asset/v2/metadata endpoint comes with key enhancements, including new parameters, additional response fields, and structural changes designed to improve flexibility and data access.","x-extended-description-with-markdown":"The /asset/v1/metadata endpoint is deprecated and has been replaced by /asset/v2/metadata. The migration to the /asset/v2/metadata endpoint comes with key enhancements, including new parameters, additional response fields, and structural changes designed to improve flexibility and data access.  Below is an in-depth guide to transitioning from the deprecated `/asset/v1/metadata` endpoint to the new `/asset/v2/metadata`.\n\n### Migration Steps\n- **Update the Endpoint URL**: Change all API calls from `/asset/v1/metadata` to `/asset/v2/metadata`.\n- **Modify the `assets` Parameter**: Replace the `asset` parameter with `assets`, which now accepts asset IDs, symbols, or URIs for more flexible asset identification.\n- **Change Response Parsing**: Update your code to handle the revised response format, where data is nested under the asset ID, symbol, or URI provided in the `assets` parameter. **Old Format**: `{ \"Data\": { \"ID\": 1, \"SYMBOL\": \"BTC\", ...}, \"Err\": {} }` **New Format**: `{ \"Data\": { \"BTC\": { \"ID\": 1, \"SYMBOL\": \"BTC\", ...} }, \"Err\": {} }`.\n\n### Benefits\n- **Multiple Asset Support**: The new `assets` parameter allows querying multiple assets in one API call, reducing the number of requests needed and improving data retrieval efficiency.\n- **Simplified Asset Specification**: The `assets` parameter enhances flexibility by supporting asset IDs, symbols, or URIs.\n- **Improved Data Parsing**: The nested response structure organizes data under the queried asset, making it easier to parse and integrate.\n- **Seamless Transition**: Minimal changes to existing code help streamline the migration process, allowing quick adoption of the new endpoint.\n\nMigrating to `/asset/v2/metadata` will provide a more robust and feature-rich integration, enabling better asset identification, flexible currency conversions, and improved response data structure for seamless application use.","tags":["Deprecated"],"operationId":"asset_v1_metadata","x-section":"Deprecated","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":true,"x-endpoint-group-id":"asset_v1_data","x-endpoint-group-name":"Metadata","parameters":[{"name":"asset","in":"query","description":"Specify the digital asset for which you want to retrieve information by providing either its unique SYMBOL, the CoinDesk internal asset ID or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. For assets with numerical SYMBOLS, use the asset_lookup_priority field to clarify whether the numerical value should be matched as a SYMBOL or an ID. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC","x-search-dropdown-type":"asset"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":2000,"items":{"type":"string","enum":["ID","BASIC","SUPPORTED_PLATFORMS","CUSTODIANS","CONTROLLED_ADDRESSES","SECURITY_METRICS","SUPPLY","SUPPLY_ADDRESSES","ASSET_TYPE_SPECIFIC_METRICS","AI_INSIGHTS","SOCIAL","TOKEN_SALE","EQUITY_SALE","RESOURCE_LINKS","CLASSIFICATION","PRICE","MKT_CAP","VOLUME","CHANGE","TOPLIST_RANK","DESCRIPTION","DESCRIPTION_SUMMARY","CONTACT","SEO","INTERNAL"],"x-enum-properties-info":{"CUSTODIANS":{"rolesRequired":["free"]},"CONTROLLED_ADDRESSES":{"rolesRequired":["free"]},"SOCIAL":{"rolesRequired":["free"]},"TOKEN_SALE":{"rolesRequired":["free"]},"EQUITY_SALE":{"rolesRequired":["free"]},"INTERNAL":{"rolesRequired":["asset_management_viewer"]}},"x-roles-required-enum":{"CUSTODIANS":["free"],"CONTROLLED_ADDRESSES":["free"],"SOCIAL":["free"],"TOKEN_SALE":["free"],"EQUITY_SALE":["free"],"INTERNAL":["asset_management_viewer"]}}},"example":[]},{"name":"asset_lookup_priority","in":"query","description":"This parameter specifies the matching priority for the asset key provided in the asset parameter. You can choose to match against the list of asset SYMBOLS, CoinDesk internal asset IDS, or asset URIs. Note that asset SYMBOLS and URIs may change due to rebrands or token switches, but the CoinDesk internal asset ID remains consistent.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"SYMBOL","enum":["SYMBOL","ID","URI"],"x-enum-properties-info":{"SYMBOL":{"name":"Symbol Priority","description":"Prioritize asset lookup by its ticker symbol (e.g., BTC for Bitcoin)."},"ID":{"name":"ID Priority","description":"Prioritize asset lookup by its unique identifier. (e.g., 1 for Bitcoin)"},"URI":{"name":"URI Priority","description":"Prioritize asset lookup by its associated Uniform Resource Identifier (URI) (e.g., bitcoin for Bitcoin)."}}},"example":"SYMBOL"},{"name":"quote_asset","in":"query","description":"Specify the digital asset for the quote values by providing either the CoinDesk internal asset ID, its unique SYMBOL, or the CoinDesk recommened URI. When using the SYMBOL, provide a string that corresponds to the asset's common ticker symbol. When using the internal asset ID, provide an integer or bigint that uniquely identifies the asset within CoinDesk. When using the asset URI, provide the unique URI that CoinDesk recommends using for the asset page. We try to first match against the id list then the symbol and then the uri. The CoinDesk asset id will never change and will always denote the same asset over time no matter how many rebrands or new versions an asset has.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"USD","minLength":1,"maxLength":100},"example":"USD","x-search-dropdown-type":"asset"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v2_metadata","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/asset/v1/data/by/symbol":{"get":{"summary":"Metadata By Symbol","description":"The /asset/v1/data/by/symbol endpoint is deprecated and has been replaced by /asset/v2/metadata. The migration to the /asset/v2/metadata endpoint comes with key enhancements, including new parameters, additional response fields, and structural changes designed to improve flexibility and data access.","x-extended-description-with-markdown":"The /asset/v1/data/by/symbol endpoint is deprecated and has been replaced by /asset/v2/metadata. The migration to the /asset/v2/metadata endpoint comes with key enhancements, including new parameters, additional response fields, and structural changes designed to improve flexibility and data access. Below is an in-depth guide to transitioning from the deprecated `/asset/v1/data/by/symbol` endpoint to the new `/asset/v2/metadata`.\n\n### Migration Steps\n- **Update Endpoint URL**: Change all API calls from `/asset/v1/data/by/symbol` to `/asset/v2/metadata` to use the new version.\n- **Modify the `assets` Parameter**: Replace the `asset_symbol` parameter with `assets`, which now accepts asset IDs, symbols, or URIs. This enhancement allows more flexibility in identifying assets within your requests.\n- **Adjust the `groups` Parameter**: Ensure your integration aligns with the updated `groups` parameter, which now has revised allowed values and transformations. This update helps manage and structure response data more effectively by removing duplicates and handling empty values better.\n- **Incorporate the `quote_asset` Parameter**: Add the `quote_asset` parameter to specify the desired currency for conversions. The default remains USD, but specifying this parameter enables direct conversions in the API response.\n- **Optional `asset_lookup_priority` Parameter**: Use the `asset_lookup_priority` parameter to control the resolution of asset identifiers when multiple are provided. This feature helps fine-tune asset lookup to match specific integration needs.\n- **Incorporate and Handle New `_CONVERSION` Fields**: Adjust your code to include the new `_CONVERSION` fields in the response: **PRICE_CONVERSION_RATE** - The exchange rate from USD to the specified quote_asset. **PRICE_CONVERSION_ASSET** - An object containing information about the conversion asset, including identifiers like symbols and IDs. **PRICE_CONVERSION_VALUE** - The converted price of the asset in the quote_asset. **PRICE_CONVERSION_SOURCE** - The data source for the conversion rate, providing transparency. **PRICE_CONVERSION_LAST_UPDATE_TS** - The timestamp for the last update of the conversion rate, ensuring data recency.\n- **Remove Deprecated Dependencies**: Review and remove any use of parameters or fields that are no longer supported in the new endpoint to maintain compatibility.\n- **Change Response Parsing**: The `/asset/v2/metadata` endpoint features a revised response format, where data is nested under the asset ID, symbol, or URI provided in the `assets` parameter. This change enhances readability and direct access to asset data. For example for the paramater `assets=BTC`, the reponse used to be `{ \"Data\": { \"ID\": 1, \"SYMBOL\": \"BTC\", ....}, Err:{}}` now it is `{ \"Data\": { \"BTC\":{ \"ID\": 1, \"SYMBOL\": \"BTC\", ....}}, Err:{}}`.\n\n### Summary of Benefits\n- **Enhanced Flexibility**: The `assets` parameter’s ability to accept IDs, symbols, or URIs simplifies integration and reduces potential errors.\n- **Direct Currency Conversion**: The `quote_asset` parameter and new `_CONVERSION` fields eliminate the need for client-side conversion logic.\n- **Clearer Data Structure**: The nested response format organizes data under the queried asset, improving data handling and parsing.\n- **Comprehensive Field Additions**: New fields like `PRICE_CONVERSION_RATE` and `PRICE_CONVERSION_SOURCE` provide detailed conversion insights for more transparent and informed data handling.\n\nMigrating to `/asset/v2/metadata` will provide a more robust and feature-rich integration, enabling better asset identification, flexible currency conversions, and improved response data structure for seamless application use.","tags":["Deprecated"],"operationId":"asset_v1_data_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_data","x-endpoint-group-name":"Metadata","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC"},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"minItems":0,"maxItems":2000,"items":{"type":"string"}}}],"deprecated":true,"x-superseded-by-operation-id":"asset_v2_metadata","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/data/by/id":{"get":{"summary":"Metadata By Id","description":"The /asset/v1/data/by/id endpoint is deprecated and has been replaced by /asset/v1/metadata. The new endpoint introduces enhanced parameters and additional response fields, including support for converting values from USD to other quote assets. While the response format remains largely the same, new _CONVERSION fields have been added to provide conversion values for different quote assets.","x-extended-description-with-markdown":"The /asset/v1/data/by/id endpoint is deprecated and has been replaced by /asset/v2/metadata. The migration to the /asset/v2/metadata endpoint comes with key enhancements, including new parameters, additional response fields, and structural changes designed to improve flexibility and data access. Below is an in-depth guide to transitioning from the deprecated `/asset/v1/data/by/symbol` endpoint to the new `/asset/v2/metadata`.\n\n### Migration Steps\n- **Update Endpoint URL**: Change all API calls from `/asset/v1/data/by/id` to `/asset/v2/metadata` to use the new version.\n- **Modify the `assets` Parameter**: Replace the `asset_symbol` parameter with `assets`, which now accepts asset IDs, symbols, or URIs. This enhancement allows more flexibility in identifying assets within your requests.\n- **Adjust the `groups` Parameter**: Ensure your integration aligns with the updated `groups` parameter, which now has revised allowed values and transformations. This update helps manage and structure response data more effectively by removing duplicates and handling empty values better.\n- **Incorporate the `quote_asset` Parameter**: Add the `quote_asset` parameter to specify the desired currency for conversions. The default remains USD, but specifying this parameter enables direct conversions in the API response.\n- **Optional `asset_lookup_priority` Parameter**: Use the `asset_lookup_priority` parameter to control the resolution of asset identifiers when multiple are provided. This feature helps fine-tune asset lookup to match specific integration needs.\n- **Incorporate and Handle New `_CONVERSION` Fields**: Adjust your code to include the new `_CONVERSION` fields in the response: **PRICE_CONVERSION_RATE** - The exchange rate from USD to the specified quote_asset. **PRICE_CONVERSION_ASSET** - An object containing information about the conversion asset, including identifiers like symbols and IDs. **PRICE_CONVERSION_VALUE** - The converted price of the asset in the quote_asset. **PRICE_CONVERSION_SOURCE** - The data source for the conversion rate, providing transparency. **PRICE_CONVERSION_LAST_UPDATE_TS** - The timestamp for the last update of the conversion rate, ensuring data recency.\n- **Remove Deprecated Dependencies**: Review and remove any use of parameters or fields that are no longer supported in the new endpoint to maintain compatibility.\n- **Change Response Parsing**: The `/asset/v2/metadata` endpoint features a revised response format, where data is nested under the asset ID, symbol, or URI provided in the `assets` parameter. This change enhances readability and direct access to asset data. For example for the paramater `assets=BTC`, the reponse used to be `{ \"Data\": { \"ID\": 1, \"SYMBOL\": \"BTC\", ....}, Err:{}}` now it is `{ \"Data\": { \"BTC\":{ \"ID\": 1, \"SYMBOL\": \"BTC\", ....}}, Err:{}}`.\n\n### Summary of Benefits\n- **Enhanced Flexibility**: The `assets` parameter’s ability to accept IDs, symbols, or URIs simplifies integration and reduces potential errors.\n- **Direct Currency Conversion**: The `quote_asset` parameter and new `_CONVERSION` fields eliminate the need for client-side conversion logic.\n- **Clearer Data Structure**: The nested response format organizes data under the queried asset, improving data handling and parsing.\n- **Comprehensive Field Additions**: New fields like `PRICE_CONVERSION_RATE` and `PRICE_CONVERSION_SOURCE` provide detailed conversion insights for more transparent and informed data handling.\n\nMigrating to `/asset/v2/metadata` will provide a more robust and feature-rich integration, enabling better asset identification, flexible currency conversions, and improved response data structure for seamless application use.","tags":["Deprecated"],"operationId":"asset_v1_data_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_data","x-endpoint-group-name":"Metadata","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":2},{"name":"groups","in":"query","description":"When requesting asset data you can filter by specific groups of interest","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":2000}}],"deprecated":true,"x-superseded-by-operation-id":"asset_v2_metadata","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_METADATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/events/by/id":{"get":{"summary":"Events By Id","description":"The /asset/v1/events/by/id endpoint is deprecated and has been replaced by /asset/v1/events. The main change is in the parameters: asset_id has been replaced with asset, which now accepts asset IDs or symbols. Additionally, an optional asset_lookup_priority parameter has been added. The URL has also changed accordingly.","x-extended-description-with-markdown":"The /asset/v1/events/by/id endpoint is deprecated and has been replaced by /asset/v1/events. The main change is in the parameters: asset_id has been replaced with asset, which now accepts asset IDs or symbols. Additionally, an optional asset_lookup_priority parameter has been added. The URL has also changed accordingly.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/events/by/id` to `/asset/v1/events`.\n- **Replace `asset_id` with `asset`**: The asset parameter now accepts asset IDs or symbols, providing greater flexibility in asset identification.\n- **Add `asset_lookup_priority` (Optional)**: Use this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and to_ts parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Simplification**: The endpoint URL is now `/asset/v1/events`, aligning with other standardized endpoint formats.\n- **Parameter Updates**: The asset_id parameter has been replaced with asset, which accepts asset IDs or symbols for improved versatility.\n- **Introduction of asset_lookup_priority Parameter**: Offers control over the asset lookup process when multiple identifiers are provided.\n- **Consistent Parameter Structure**: Parameters have been updated to align with other endpoints, simplifying integration and reducing potential errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting asset IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardized API Structure**: Updating the URL and parameters provides consistency across endpoints, making the API easier to navigate and implement.\n- **Improved Developer Experience**: These changes aim to streamline API usage, enhance clarity, and reduce integration complexity.\n\nBy migrating to `/asset/v1/events`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_events_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_event","x-endpoint-group-name":"Events","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":1},{"name":"limit","in":"query","description":"The number of events to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":100}},{"name":"to_ts","in":"query","description":"Returns events before this unix timestamp. If you want to get all the available events, you can use limit=100 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=100&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_events","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_EVENTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/events/by/symbol":{"get":{"summary":"Events By Symbol","description":"The /asset/v1/events/by/symbol endpoint is deprecated and has been replaced by /asset/v1/events. The main change is in the parameters: asset_symbol has been replaced with asset, which now accepts asset IDs or symbols. Additionally, an optional asset_lookup_priority parameter has been added. The URL has also changed accordingly.","x-extended-description-with-markdown":"The /asset/v1/events/by/symbol endpoint is deprecated and has been replaced by /asset/v1/events. The main change is in the parameters: asset_symbol has been replaced with asset, which now accepts asset IDs or symbols. Additionally, an optional asset_lookup_priority parameter has been added. The URL has also changed accordingly.\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/events/by/symbol` to `/asset/v1/events`.\n- **Replace asset_symbol with asset**: The asset parameter now accepts asset IDs or symbols, providing greater flexibility in asset identification.\n- **Add asset_lookup_priority (Optional)**: Use this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and to_ts parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Simplification**: The endpoint URL is now `/asset/v1/events`, aligning with other standardized endpoint formats.\n- **Parameter Updates**: The `asset_symbol` parameter has been replaced with `asset`, which accepts asset IDs or symbols for improved versatility.\n- **Introduction of `asset_lookup_priority` Parameter**: Offers control over the asset lookup process when multiple identifiers are provided.\n- **Consistent Parameter Structure**: Parameters have been updated to align with other endpoints, simplifying integration and reducing potential errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting asset IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardized API Structure**: Updating the URL and parameters provides consistency across endpoints, making the API easier to navigate and implement.\n- **Improved Developer Experience**: These changes aim to streamline API usage, enhance clarity, and reduce integration complexity.\n\nBy migrating to `/asset/v1/events`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_events_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_event","x-endpoint-group-name":"Events","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC"},{"name":"limit","in":"query","description":"The number of events to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":100}},{"name":"to_ts","in":"query","description":"Returns events before this unix timestamp. If you want to get all the available events, you can use limit=100 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=100&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_events","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_EVENTS_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/code/repository/days/by/id":{"get":{"summary":"Historical Social Code Repository Day By Id","description":"The /asset/v1/code/repository/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/code-repository/days. The new endpoint introduces changes to the parameters, including replacing asset_id with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter. The URL has also changed to /asset/v1/historical/code-repository/days.","x-extended-description-with-markdown":"The /asset/v1/code/repository/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/code-repository/days. The new endpoint introduces changes to the parameters, including replacing asset_id with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter. The URL has also changed to /asset/v1/historical/code-repository/days.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/code/repository/days/by/id` to `/asset/v1/historical/code-repository/days`.\n- **Replace `asset_id` with `asset`**: The asset parameter now accepts asset IDs or symbols, providing greater flexibility in asset identification.\n- **Add `asset_lookup_priority` (Optional)**: Use this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The endpoint URL has changed to /asset/v1/historical/code-repository/days, aligning with standardized endpoint formats.\n- **Parameter Updates**: The `asset_id` parameter has been replaced with `asset`, which accepts asset IDs or symbols for improved versatility.\n- **Introduction of `asset_lookup_priority` Parameter**: Offers control over the asset lookup process when multiple identifiers are provided.\n- **Consistent Parameter Structure**: Parameters have been updated to align with other endpoints, simplifying integration and reducing potential errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting asset IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardized API Structure**: Updating the URL and parameters provides consistency across endpoints, making the API easier to navigate and implement.\n- **Improved Developer Experience**: These changes aim to streamline API usage, enhance clarity, and reduce integration complexity.\n\nBy migrating to `/asset/v1/historical/code-repository/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_code_repository_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":1},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated code repository metrics before this unix timestamp. If you want to get all the available code repository metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_code_repository_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_CODE_REPOSITORIES_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/code/repository/days/by/symbol":{"get":{"summary":"Historical Social Code Repository Day By Symbol","description":"The /asset/v1/code/repository/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/code-repository/days. The new endpoint introduces changes to the parameters, including replacing asset_symbol with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter. The URL has also changed to /asset/v1/historical/code-repository/days.","x-extended-description-with-markdown":"The /asset/v1/code/repository/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/code-repository/days. The new endpoint introduces changes to the parameters, including replacing asset_symbol with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter. The URL has also changed to /asset/v1/historical/code-repository/days.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/code/repository/days/by/symbol` to `/asset/v1/historical/code-repository/days`.\n- **Replace `asset_symbol` with `asset`**: The asset parameter now accepts asset IDs or symbols, providing greater flexibility in asset identification.\n- **Add `asset_lookup_priority` (Optional)**: Use this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The endpoint URL has changed to /asset/v1/historical/code-repository/days, aligning with standardized endpoint formats.\n- **Parameter Updates**: The `asset_id` parameter has been replaced with `asset`, which accepts asset IDs or symbols for improved versatility.\n- **Introduction of `asset_lookup_priority` Parameter**: Offers control over the asset lookup process when multiple identifiers are provided.\n- **Consistent Parameter Structure**: Parameters have been updated to align with other endpoints, simplifying integration and reducing potential errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting asset IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardized API Structure**: Updating the URL and parameters provides consistency across endpoints, making the API easier to navigate and implement.\n- **Improved Developer Experience**: These changes aim to streamline API usage, enhance clarity, and reduce integration complexity.\n\nBy migrating to `/asset/v1/historical/code-repository/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_code_repository_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated code repository metrics before this unix timestamp. If you want to get all the available code repository metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_code_repository_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_CODE_REPOSITORIES_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/discord/days/by/id":{"get":{"summary":"Historical Social Discord Day By Id","description":"The /asset/v1/discord/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/discord/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/discord/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/discord/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/discord/days/by/id` to `/asset/v1/historical/discord/days`.\n- **Replace `asset_id` with `asset`**: Use the asset parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/discord/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_id` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/discord/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_discord_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":2},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated discord metrics before this unix timestamp. If you want to get all the available discord metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_discord_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_DISCORD_SERVERS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/discord/days/by/symbol":{"get":{"summary":"Historical Social Discord Day By Symbol","description":"The /asset/v1/discord/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/discord/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/discord/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/discord/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/discord/days/by/symbol` to `/asset/v1/historical/discord/days`.\n- **Replace `asset_symbol` with `asset`**: Use the asset parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/discord/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_symbol` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/discord/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_discord_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"ETH"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated discord metrics before this unix timestamp. If you want to get all the available discord metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_discord_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_DISCORD_SERVERS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/reddit/days/by/id":{"get":{"summary":"Historical Social Reddit Day By Id","description":"The /asset/v1/reddit/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/reddit/days. The new endpoint introduces changes to the parameters, including replacing asset_id with asset, which accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/reddit/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/reddit/days. The new endpoint introduces changes to the parameters, including replacing asset_id with asset, which accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/reddit/days/by/id` to `/asset/v1/historical/reddit/days`.\n- **Replace `asset_id` with `asset`**: Use the `asset` parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/reddit/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_id` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/reddit/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_reddit_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":1},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated reddit metrics before this unix timestamp. If you want to get all the available reddit metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_reddit_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SUBREDDITS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/reddit/days/by/symbol":{"get":{"summary":"Historical Social Reddit Day By Symbol","description":"The /asset/v1/reddit/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/reddit/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/reddit/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/reddit/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/reddit/days/by/symbol` to `/asset/v1/historical/reddit/days`.\n- **Replace `asset_symbol` with `asset`**: Use the asset parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/reddit/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_symbol` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/reddit/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_reddit_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"BTC"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated reddit metrics before this unix timestamp. If you want to get all the available reddit metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_reddit_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_SUBREDDITS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/telegram/days/by/id":{"get":{"summary":"Historical Social Telegram Day By Id","description":"The /asset/v1/telegram/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/telegram/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/telegram/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/telegram/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.'\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/telegram/days/by/id` to `/asset/v1/historical/telegram/days`.\n- **Replace `asset_id` with `asset`**: Use the `asset` parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/telegram/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_id` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/telegram/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_telegram_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":3},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated telegram group metrics before this unix timestamp. If you want to get all the available telegram group metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_telegram_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TELEGRAM_GROUPS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/telegram/days/by/symbol":{"get":{"summary":"Historical Social Telegram Day By Symbol","description":"The /asset/v1/telegram/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/telegram/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/telegram/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/telegram/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.'\n        \n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/telegram/days/by/symbol` to `/asset/v1/historical/telegram/days`.\n- **Replace `asset_symbol` with `asset`**: Use the `asset` parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to /asset/v1/historical/telegram/days to standardize endpoint formats.\n- **Parameter Replacement**: `asset_symbol` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/telegram/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_telegram_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"SOL"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","description":"Returns historical daily aggregated telegram group metrics before this unix timestamp. If you want to get all the available telegram group metrics, you can use limit=2000 and keep going back in time using the to_ts param. You can then keep requesting batches using: &limit=2000&to_ts={the earliest unix timestamp received}. The to_ts parameter must be in seconds since epoch and cannot exceed a range of 2 years from the current timestamp.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_telegram_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TELEGRAM_GROUPS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/twitter/days/by/id":{"get":{"summary":"Historical Social X(Twitter) Day By Id","description":"The /asset/v1/twitter/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/twitter/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/twitter/days/by/id endpoint is deprecated and has been replaced by /asset/v1/historical/twitter/days. The main changes include replacing the asset_id parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/twitter/days/by/id` to `/asset/v1/historical/twitter/days`.\n- **Replace `asset_id` with `asset`**: Use the `asset` parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/twitter/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_id` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/twitter/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_twitter_days_by_id","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_id","in":"query","description":"The unique CoinDesk internal ID of the cryptocurrency asset for which you wish to retrieve information. This should be a numerical value.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer"},"example":2},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_twitter_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TWITTER_ACCOUNTS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/asset/v1/twitter/days/by/symbol":{"get":{"summary":"Historical Social X(Twitter) Day By Symbol","description":"The /asset/v1/twitter/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/twitter/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.","x-extended-description-with-markdown":"The /asset/v1/twitter/days/by/symbol endpoint is deprecated and has been replaced by /asset/v1/historical/twitter/days. The main changes include replacing the asset_symbol parameter with asset, which now accepts asset IDs or symbols, and adding the optional asset_lookup_priority parameter.\n\n### How to Migrate\n- **Update Endpoint URL**: Change your API calls from `/asset/v1/twitter/days/by/symbol` to `/asset/v1/historical/twitter/days`.\n- **Replace `asset_symbol` with `asset`**: Use the `asset` parameter, which now accepts asset IDs or symbols for greater flexibility.\n- **Add `asset_lookup_priority` (Optional)**: Include this parameter to control how the API resolves assets when multiple identifiers are possible.\n- **Verify Other Parameters**: Ensure that the limit and any other parameters are used as before.\n\n### What's Changed and Why\n- **Endpoint URL Update**: The URL has been updated to `/asset/v1/historical/twitter/days` to standardize endpoint formats.\n- **Parameter Replacement**: `asset_symbol` is replaced with `asset`, enhancing versatility by accepting both IDs and symbols.\n- **New `asset_lookup_priority` Parameter**: Provides control over asset resolution when multiple identifiers are used.\n- **Consistent Parameter Structure**: Aligns parameters with other endpoints for simplified integration and reduced errors.\n\n### Reason for Changes\n- **Enhanced Flexibility**: Accepting IDs or symbols in the asset parameter makes the API more versatile and user-friendly.\n- **Standardization**: Updating URLs and parameters ensures consistency across the API, easing navigation and implementation.\n- **Improved Developer Experience**: Streamlines API usage, enhances clarity, and reduces integration complexity.\n\nBy migrating to `/asset/v1/historical/twitter/days`, you'll benefit from a more flexible and standardized API, leading to smoother and more efficient integration for your applications.","tags":["Deprecated"],"operationId":"asset_v1_twitter_days_by_symbol","x-section":"Deprecated","x-roles-required":["free","free"],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"asset_v1_historical_social","x-endpoint-group-name":"Historical Social","parameters":[{"name":"asset_symbol","in":"query","description":"The unique symbol of the cryptocurrency asset for which you wish to retrieve information. This should be a string that accurately represents the asset's common ticker symbol.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":100},"example":"ETH"},{"name":"groups","in":"query","description":"When requesting historical entries you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ID","GENERAL","ACTIVITY"],"items":{"type":"string"}},"example":[]},{"name":"limit","in":"query","description":"The number of days to return in the response.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000},"example":30},{"name":"to_ts","in":"query","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 2 on a hour social histo data endpoint will return data at 2 hour intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 16 2 hours interval entries","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30},"example":1},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no change in social data.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true},"example":true},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{"JSON":{"name":"JSON","description":"Data is returned in JavaScript Object Notation (JSON) format for easy parsing and integration."},"CSV":{"name":"CSV","description":"Data is returned in Comma-Separated Values (CSV) format for spreadsheet and tabular analysis."}}},"example":"JSON"}],"deprecated":true,"x-superseded-by-operation-id":"asset_v1_historical_twitter_days","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ASSET_TWITTER_ACCOUNTS_HISTO_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/news/v1/article/list":{"get":{"summary":"Latest Articles","description":"The Latest Articles endpoint serves as the pulse of the crypto news landscape, providing users with instant access to the most recent articles across the industry. By drawing from a wide array of reputable sources, this endpoint curates a fresh, real-time stream of information, insights, and developments, ensuring that users remain at the forefront of crypto news narratives. Whether you are an investor, enthusiast, or industry professional, this endpoint delivers a comprehensive and up-to-the-minute news digest, placing you at the heart of the ever-evolving crypto conversation.","x-extended-description-with-markdown":"The Latest Articles endpoint serves as the pulse of the crypto news landscape, providing users with instant access to the most recent articles across the industry. By drawing from a wide array of reputable sources, this endpoint curates a fresh, real-time stream of information, insights, and developments, ensuring that users remain at the forefront of crypto news narratives. Whether you are an investor, enthusiast, or industry professional, this endpoint delivers a comprehensive and up-to-the-minute news digest, placing you at the heart of the ever-evolving crypto conversation.\n\n### Use Cases\n- **Real-Time News Updates**: Stay informed with the latest developments and news in the crypto industry.\n- **Market Analysis**: Use up-to-date articles to analyse market trends and make informed investment decisions.\n- **Content Curation**: Curate content for blogs, newsletters, or social media with the most recent crypto news.\n- **Industry Research**: Conduct thorough research with access to the latest articles from various reputable sources.\n- **News Aggregation**: Integrate the latest articles into news aggregation platforms or apps for continuous updates.\n\n### Target Audiences\n- **Crypto Investors and Traders**: Needing real-time news to make timely and informed trading decisions.\n- **Industry Professionals**: Seeking the latest developments and insights in the crypto world.\n- **Content Creators and Curators**: Looking for fresh content to share with their audience.\n- **Researchers and Analysts**: Requiring up-to-date information for in-depth market and industry analysis.\n- **Crypto Enthusiasts**: Wanting to stay updated with the latest news and trends in the crypto space.\n\nThe Latest Articles endpoint is an essential tool for anyone needing immediate access to the freshest news and insights in the crypto industry. By utilising this endpoint, users can stay updated with real-time information, enhance their market analysis, curate content efficiently, and conduct thorough industry research. This ensures that you are always at the cutting edge of crypto developments and conversations. Start using the Latest Articles endpoint today to stay informed and ahead in the dynamic world of cryptocurrency.","tags":["News"],"operationId":"news_v1_article_list","x-section":"News","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":true,"x-endpoint-group-id":"news_v1_article_list","x-endpoint-group-name":"Latest Articles","parameters":[{"name":"lang","in":"query","description":"The preferred language for the sources or articles - English (EN), Espanol (ES), Turkish (TR), French (FR), Japanese (JP), Portuguese (PT)","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"EN","enum":["EN","ES","TR","FR","JP","PT",""],"x-enum-properties-info":{},"minLength":1},"example":"EN"},{"name":"source_ids","in":"query","description":"Get articles from specific sources based on their keys. If left empty it will just return news from ACTIVE sources for the selected language, if you want to get inactive sources as well, please pass them in alongside the active ones in this array.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string"}},"example":[],"x-search-dropdown-type":"news_sources"},{"name":"categories","in":"query","description":"List of news article categories to include in the results. If an article matches any of the specified categories, it will be included in the results. Articles must be associated with at least one of these categories to appear, unless no categories are specified, in which case articles from all categories are included.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"maxItems":200,"items":{"type":"string"}},"example":[],"x-search-dropdown-type":"news_categories"},{"name":"exclude_categories","in":"query","description":"List of news article categories to exclude from the results. If an article matches any of the specified categories, it will be excluded. This parameter ensures that articles associated with these categories are not included in the final results, even if they also match categories listed in the 'categories' parameter. Any category name or id that is in both exclude_categories and categories parameters will be removed from the exclude_categories parameter.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"maxItems":200,"items":{"type":"string"}},"example":[],"x-search-dropdown-type":"news_categories"},{"name":"limit","in":"query","description":"Number of total news articles to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":50,"minimum":1,"maximum":100},"example":10},{"name":"to_ts","in":"query","description":"Articles published on or before this timestamp","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1,"x-is-timestamp":true}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NEWS_ARTICLES_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/news/v1/source/list":{"get":{"summary":"Sources","description":"The News Sources endpoint offers a comprehensive listing of all news sources available through our API. This endpoint is crucial for users who need to identify and access a diverse array of reputable news outlets, blogs, and information platforms. It ensures that users can explore and select from a curated list of trusted industry voices, supporting a variety of applications in research, news aggregation, and content curation.","x-extended-description-with-markdown":"The News Sources endpoint offers a comprehensive listing of all news sources available through our API. This endpoint is crucial for users who need to identify and access a diverse array of reputable news outlets, blogs, and information platforms. It ensures that users can explore and select from a curated list of trusted industry voices, supporting a variety of applications in research, news aggregation, and content curation.\n\n### Use Cases\n- **News Aggregation**: Allows integration of various news sources into custom applications, enhancing the diversity and depth of information available.\n- **Research and Analysis**: Provides researchers and analysts with access to a wide range of news outlets for gathering insights and conducting detailed market studies.\n- **Content Curation**: Enables curators to diversify the news content on their platforms, offering a broader perspective on industry developments.\n- **Trend Monitoring**: Assists in tracking emerging trends by sourcing information from multiple credible outlets, supporting informed decision-making.\n- **Educational Purposes**: Useful for educators and students exploring the landscape of media sources, understanding their distribution, credibility, and impact.\n\n### Target Audience\n- **Developers**: Who want to embed a variety of news sources into their applications.\n- **Researchers** and **Analysts**: Looking for comprehensive access to reputable news outlets.\n- **Content Curators**: Seeking to expand the range of news content on their platforms.\n- **Educators** and **Students**: Studying the dynamics of news dissemination and source credibility.\n- **Industry Enthusiasts**: Interested in continuous updates from trusted news platforms.\n\nThis endpoint is a vital resource for anyone looking to access a broad spectrum of news sources to enhance their applications, perform in-depth analysis, or simply stay informed about industry trends. It caters to developers, content managers, researchers, and educators by providing an easy way to explore and integrate news from a range of trusted sources. Start using the News Sources endpoint today to enrich your projects with valuable insights from around the world.","tags":["News"],"operationId":"news_v1_source_list","x-section":"News","x-roles-required":[],"x-cache-length-seconds":120,"x-visible-in-ai":false,"x-endpoint-group-id":"news_v1_source_list","x-endpoint-group-name":"Sources","parameters":[{"name":"lang","in":"query","description":"The preferred language for the sources or articles - English (EN), Espanol (ES), Turkish (TR), French (FR), Japanese (JP), Portuguese (PT)","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"EN","enum":["EN","ES","TR","FR","JP","PT",""],"x-enum-properties-info":{},"minLength":0},"example":"EN"},{"name":"source_type","in":"query","description":"Specifies the type of integration used by the news source. Current allowed values are RSS, API, and TWITTER. 'RSS' indicates a source that distributes content via RSS feeds. 'API' refers to sources that provide data through a standardized programming interface. 'TWITTER' represents sources that disseminate information directly through Twitter. This parameter helps in selecting the method through which news content is retrieved.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"RSS","enum":["RSS","API","TWITTER",""],"x-enum-properties-info":{},"minLength":0},"example":"RSS"},{"name":"status","in":"query","description":"List of statuses used to filter articles based on their source integration state. Current allowed values are: ACTIVE, INACTIVE. An ACTIVE status indicates that the source's integration, such as an RSS feed, is currently operational and actively providing data. An INACTIVE status is assigned to sources that have either blocked access, disabled their integration mechanisms, or ceased operations. More statuses may be added in the future as source integration scenarios evolve.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":["ACTIVE"],"maxItems":10,"items":{"type":"string","enum":["ACTIVE","INACTIVE"],"x-enum-properties-info":{}}},"example":["ACTIVE"]},{"name":"search_string","in":"query","description":"The search_string parameter enables users to search sources by ids, names, or keys, offering flexibility in query handling. For textual inputs, it matches against the start of keys and anywhere in names, case-insensitively, with a priority on exact key matches. Numerical inputs trigger a search against source IDs, prioritizing exact matches, followed by key and name matches based on their relevance.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100},"example":""}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NEWS_SOURCE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/news/v1/category/list":{"get":{"summary":"Categories","description":"The News Categories List endpoint is designed to provide a straightforward listing of all news categories available through our API. This endpoint is essential for users looking to identify the broad spectrum of topics covered by our news sources, ranging from market trends and technological advances to regulatory changes and cultural events. By offering a clear overview of these categories, it facilitates users in understanding and navigating the thematic organization of news content.","x-extended-description-with-markdown":"The News Categories List endpoint is designed to provide a straightforward listing of all news categories available through our API. This endpoint is essential for users looking to identify the broad spectrum of topics covered by our news sources, ranging from market trends and technological advances to regulatory changes and cultural events. By offering a clear overview of these categories, it facilitates users in understanding and navigating the thematic organization of news content.\n\n### Use Cases\n- **Content Organization**: Helps in structuring and organizing news data within applications, making it easier for users to navigate and select topics of interest.\n- **User Customization**: Enables users to customize their news feeds by selecting categories that align with their interests or professional needs.\n- **Analytical Research**: Assists researchers and analysts in identifying relevant categories for targeted studies or industry reports.\n- **Educational Reference**: Serves as a valuable educational tool for students and educators to understand the diverse topics covered in news media.\n- **API Integration**: Provides developers with category identifiers that are crucial for API calls when filtering or searching through aggregated news content.\n\n### Target Audience\n- **Developers**: Who need category identifiers for integrating and filtering content in applications.\n- **Content Managers**: Looking to offer tailored news experiences based on specific categories.\n- **Researchers** and **Analysts**: Who require a clear categorization of news for focused research and analysis.\n- **Educators** and **Students**: Interested in studying the categorization of news topics for academic purposes.\n- **Media Professionals**: Seeking to understand the breadth of topics covered by news outlets for better editorial planning.\n\nThis endpoint is an invaluable tool for anyone needing a categorized overview of news topics to enhance applications, conduct specialized research, or tailor content offerings. It allows users to efficiently locate and utilize news categories, facilitating more organized and targeted approaches to news consumption and content curation. Utilize the News Categories List endpoint today to gain clarity on the available news topics and improve your project's capability to engage with relevant news content.","tags":["News"],"operationId":"news_v1_category_list","x-section":"News","x-roles-required":[],"x-cache-length-seconds":120,"x-visible-in-ai":false,"x-endpoint-group-id":"news_v1_category_list","x-endpoint-group-name":"Categories","parameters":[{"name":"status","in":"query","description":"List of statuses used to filter categories based on their integration state. Current allowed values are: ACTIVE, INACTIVE.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"ACTIVE","enum":["ACTIVE","INACTIVE"],"x-enum-properties-info":{},"minLength":1},"example":"ACTIVE"},{"name":"search_string","in":"query","description":"The search_string parameter enables users to search categorys by ids or names offering flexibility in query handling. For textual inputs, it matches against the start of keys and anywhere in names, case-insensitively, with a priority on exact key matches. Numerical inputs trigger a search against category IDs, prioritizing exact matches, followed by name matches based on their relevance.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"","minLength":0,"maxLength":100},"example":""}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NEWS_CATEGORY_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/news/v1/article/get":{"get":{"summary":"Single Article","description":"Designed for precision and specificity, the Single Article by Source and GUID endpoint allows users to access individual news articles from the crypto industry. By using both the source and article GUID, users can retrieve detailed content from a specific piece, ensuring they get the exact information they need. This endpoint is perfect for researchers, journalists, and readers with targeted interests, streamlining the process of delving into specific narratives within the vast world of crypto news.","x-extended-description-with-markdown":"Designed for precision and specificity, the Single Article by Source and GUID endpoint allows users to access individual news articles from the crypto industry. By using both the source and article GUID, users can retrieve detailed content from a specific piece, ensuring they get the exact information they need. This endpoint is perfect for researchers, journalists, and readers with targeted interests, streamlining the process of delving into specific narratives within the vast world of crypto news.\n\n### Use Cases\n- **Targeted Research**: Researchers can access specific articles for detailed studies and analysis.\n- **Journalistic Referencing**: Journalists can retrieve exact articles for accurate referencing in their reports.\n- **Focused Reading**: Readers can find and read specific articles of interest without sifting through irrelevant content.\n- **Content Verification**: Fact-checkers can pull up the original articles for verification purposes.\n- **Data Archiving**: Developers can store and retrieve precise articles for archival systems.\n\n### Target Audiences\n- **Researchers and Academics**: Needing specific articles for in-depth research and academic purposes.\n- **Journalists** and **Writers**: Seeking exact articles for accurate and reliable references in their work.\n- **Crypto Enthusiasts**: Interested in finding particular articles that match their specific interests.\n- **Fact-Checkers**: Verifying the accuracy of news and information by accessing the original sources.\n- **Developers** and **Data Analysts**: Implementing systems that require precise retrieval of articles for various applications.\n\nThe Single Article by Source and GUID endpoint is an invaluable tool for those needing precise access to specific crypto news articles. By leveraging this endpoint, users can streamline their research, enhance the accuracy of their work, and focus on targeted reading. Whether you are a researcher, journalist, or crypto enthusiast, this endpoint offers a focused and efficient way to dive deep into the narratives that matter most. Start using the Single Article by Source and GUID endpoint today to access the exact information you need from the world of crypto news.","tags":["News"],"operationId":"news_v1_article_get","x-section":"News","x-roles-required":[],"x-cache-length-seconds":10,"x-visible-in-ai":false,"x-endpoint-group-id":"news_v1_article_get","x-endpoint-group-name":"Single Article","parameters":[{"name":"source_key","in":"query","description":"The unique key for a news source; e.g cryptocompare, this works with the source_id as well, so it needs to either be a source key or a source id.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":50},"example":"cryptocompare","x-search-dropdown-type":"news_source"},{"name":"guid","in":"query","description":"Article guid","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1},"example":"https://www.cryptocompare.com/email-updates/daily/2023/mar/02/"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NEWS_ARTICLE_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/news/v1/search":{"get":{"summary":"News Search","description":"The News Search endpoint provides advanced search capabilities across news articles, enabling users to effectively discover content based on precise or partial keyword matches from specified news sources and languages. It intelligently prioritizes results by relevance, scoring articles according to exact and fuzzy keyword matches, and ordering results by recency to deliver highly relevant and timely news content.","x-extended-description-with-markdown":"The News Search endpoint provides advanced search capabilities across news articles, enabling users to effectively discover content based on precise or partial keyword matches from specified news sources and languages. It intelligently prioritizes results by relevance, scoring articles according to exact and fuzzy keyword matches, and ordering results by recency to deliver highly relevant and timely news content.\n\n### Key Features\n- **Precise and Partial Matching**: Supports exact and fuzzy keyword searches, enabling users to find relevant news articles even with incomplete or partial input.\n- **Relevance-Based Scoring**: Each article receives a relevance score—exact word matches are awarded 1 point, while partial matches earn 0.5 points—ensuring that the most pertinent articles appear prominently.\n- **Timely Ordering of Results**: Articles with identical scores are ranked by their publication date, presenting the newest articles first to maintain timely information delivery.\n- **Language and Source Filtering**: Allows filtering articles by language and specific news sources to refine search accuracy and relevance.\n- **Rich Content Delivery**: Delivers comprehensive article metadata, including titles, summaries, URLs, source details, publication dates, and associated categories, ensuring informative and contextual search results.\n\n### Use Cases\n- **Content Discovery Platforms**: Enhance news aggregators and content platforms with efficient search capabilities, improving user experience and engagement.\n- **Market and Sentiment Analysis**: Support analysts and traders with quick retrieval of relevant news for real-time sentiment and trend analysis.\n- **Educational Resources**: Provide educators and learners targeted access to timely news articles for research and knowledge development.\n- **Customized News Feeds**: Enable personalized and dynamically updated news feeds based on user-specific keywords and sources.\n\n### Target Audiences\n- **Developers and Platform Integrators**: Easily implement robust news search features into web and mobile applications to enhance user engagement.\n- **Financial Analysts and Traders**: Quickly access relevant news content crucial for informed investment decisions and market analysis.\n- **Media Professionals and Content Curators**: Efficiently identify and compile timely articles for editorial or publishing purposes.\n- **Educators and Researchers**: Facilitate comprehensive research and learning through targeted access to news sources and articles.\n- **Individual Users and Enthusiasts**: Discover relevant news stories based on personal interests, supported by powerful and intuitive search capabilities.\n\nLeveraging the News Search endpoint ensures optimized content discovery through a combination of sophisticated keyword matching, relevance scoring, and chronological ordering, catering to diverse informational needs across various domains.\n\n**Notes on 'Relevance Scoring and Ordering' Logic:**\n- **Exact Word Matches**: Articles containing exact keyword matches from the user's search query are awarded 1 point per match.\n- **Partial (Fuzzy) Matches**: Articles containing partial keyword matches receive 0.5 points per occurrence, ensuring relevant results even with incomplete search inputs.\n- **Ordering by Score and Date**: Results are sorted primarily by relevance score. Articles sharing identical scores are subsequently sorted by publication date in descending order, ensuring that users always access the freshest and most pertinent news content.","tags":["News"],"operationId":"news_v1_search","x-section":"News","x-roles-required":[],"x-cache-length-seconds":30,"x-visible-in-ai":true,"x-endpoint-group-id":"news_v1_search_group","x-endpoint-group-name":"Search","parameters":[{"name":"search_string","in":"query","description":"Search news","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":1,"maxLength":1000},"example":"Ethereum ecosystem"},{"name":"limit","in":"query","description":"The number of search results to return.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":100}},{"name":"to_ts","in":"query","description":"Articles published on or before this timestamp","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":-1,"x-is-timestamp":true}},{"name":"lang","in":"query","description":"The preferred language for the sources or articles - English (EN), Espanol (ES), Turkish (TR), French (FR), Japanese (JP), Portuguese (PT)","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"EN","enum":["EN","ES","TR","FR","JP","PT",""],"x-enum-properties-info":{},"minLength":1},"example":"EN"},{"name":"source_key","in":"query","description":"The unique key for a news source; e.g coindesk, this works with the source_id as well, so it needs to either be a source key or a source id.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","minLength":0,"maxLength":50},"example":"coindesk","x-search-dropdown-type":"news_source"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NEWS_ARTICLES_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR_DATA_ARRAY"}}}}}}},"/overview/v1/latest/marketcap/all/tick":{"get":{"summary":"MktCap Latest Tick Tick All Assets","description":"This endpoint provides a comprehensive snapshot of the current market capitalisation status for digital assets. Users can retrieve the current total market cap alongside granular time-based metrics: the market cap for the current hour and day, as well as open-high-low values over a moving 24-hour period. Additionally, it offers insights into the total top-tier trading volume for the current hour, day, and past 24 hours, serving as a one-stop hub for key market cap data points.","x-extended-description-with-markdown":"This endpoint provides a comprehensive snapshot of the current market capitalisation status for digital assets. Users can retrieve the current total market cap alongside granular time-based metrics: the market cap for the current hour and day, as well as open-high-low values over a moving 24-hour period. Additionally, it offers insights into the total top-tier trading volume for the current hour, day, and past 24 hours, serving as a one-stop hub for key market cap data points.\n\n### Use Cases\n- **Monitoring real-time changes in the total market capitalisation** of digital assets.\n- **Analysing hourly and daily market cap trends** to inform trading strategies.\n- **Accessing high-low values over a 24-hour period** for detailed market analysis.\n- **Tracking top-tier trading volume metrics** to assess market liquidity.\n- **Integrating market cap data** into financial models and trading algorithms.\n\n##Target Audience\n- **Cryptocurrency traders** and **investors** seeking up-to-date market data.\n- **Financial analysts** requiring detailed metrics for market capitalisation studies.\n- **Developers building** cryptocurrency market analysis tools and dashboards.\n- **Economists** and **researchers** studying the digital asset market.\n- **Portfolio managers** optimising investment strategies based on market trends.\n\nThis endpoint offers significant advantages by delivering detailed and timely market capitalisation data, essential for informed decision-making in the cryptocurrency market. By providing both current and historical metrics, users can gain a comprehensive understanding of market dynamics. Developers can leverage this endpoint to build robust applications, such as real-time market trackers, trading bots, and analytical dashboards. Start exploring the vast potential of this endpoint to enhance your digital asset market insights and create innovative financial solutions.","tags":["Overview"],"operationId":"overview_v1_latest_marketcap_all_tick","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_tick","x-endpoint-group-name":"MktCap Latest Tick","parameters":[{"name":"groups","in":"query","description":"When requesting all market cap tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","MOVING_24_HOUR"],"x-enum-properties-info":{}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_TICK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/overview/v1/historical/marketcap/all/assets/days":{"get":{"summary":"MktCap Historical OHLCV All Assets Day","description":"Built as an overview for the digital asset industry, this endpoint presents a thorough historical daily overview of market capitalisation for digital assets that meet the volume and listing criteria. Users can explore day-by-day total market cap figures, along with daily open-high-low values and top-tier trading volumes, for the entire digital asset industry. It's a fundamental tool for analysts, researchers, and investors looking to understand market trends, trace asset performance over time, and make data-driven decisions rooted in historical contexts.","x-extended-description-with-markdown":"Built as an overview for the digital asset industry, this endpoint presents a thorough historical daily overview of market capitalisation for digital assets that meet the volume and listing criteria. Users can explore day-by-day total market cap figures, along with daily open-high-low values and top-tier trading volumes, for the entire digital asset industry. It's a fundamental tool for analysts, researchers, and investors looking to understand market trends, trace asset performance over time, and make data-driven decisions rooted in historical contexts.\n\n### Use Cases\n- **Reviewing historical market capitalisation trends** in the digital asset industry.\n- **Analysing daily open-high-low values** to identify market patterns and volatility.\n- **Assessing top-tier trading volumes** to gauge market activity and liquidity.\n- **Conducting comprehensive market research** based on historical data.\n- **Supporting investment strategies** with detailed historical market insights.\n\n### Target Audience\n- **Financial analysts** examining long-term trends in digital asset markets.\n- **Cryptocurrency investors** making informed decisions based on historical performance.\n- **Researchers** studying the evolution of the digital asset industry.\n- **Developers** creating analytical tools and dashboards for market data.\n- **Economists** evaluating the impact of market changes over time.\n\nThis endpoint is essential for anyone seeking to understand the historical dynamics of the digital asset industry. By providing detailed daily data on market capitalisation, open-high-low values, and top-tier trading volumes, it enables users to make informed decisions backed by robust historical insights. Developers can utilise this endpoint to build advanced analytical tools, historical performance trackers, and market research platforms. Start leveraging this endpoint to gain a comprehensive view of the digital asset market's past performance and enhance your data-driven decision-making capabilities.","tags":["Overview"],"operationId":"overview_v1_historical_marketcap_all_assets_days","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_histo","x-endpoint-group-name":"MktCap Historical OHLCV","parameters":[{"name":"groups","in":"query","description":"When requesting all market cap historical data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","VOLUME"],"x-enum-properties-info":{}}}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true}},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/overview/v1/historical/marketcap/all/assets/hours":{"get":{"summary":"MktCap Historical OHLCV All Assets Hour","description":"Designed to offer an in-depth look at the digital asset industry, this endpoint provides a detailed historical hourly overview of market capitalisation for digital assets that meet volume and listing criteria. Users can access hour-by-hour total market cap figures, along with hourly open-high-low values and top-tier trading volumes, covering the entire digital asset industry. This endpoint is an invaluable resource for analysts, researchers, and investors aiming to understand intraday market trends, monitor asset performance closely, and make timely data-driven decisions based on historical hourly data.","x-extended-description-with-markdown":"Designed to offer an in-depth look at the digital asset industry, this endpoint provides a detailed historical hourly overview of market capitalisation for digital assets that meet volume and listing criteria. Users can access hour-by-hour total market cap figures, along with hourly open-high-low values and top-tier trading volumes, covering the entire digital asset industry. This endpoint is an invaluable resource for analysts, researchers, and investors aiming to understand intraday market trends, monitor asset performance closely, and make timely data-driven decisions based on historical hourly data.\n\n### Use Cases\n- **Reviewing intraday market capitalisation trends** in the digital asset industry.\n- **Analysing hourly open-high-low values** to identify short-term market patterns and volatility.\n- **Assessing top-tier trading volumes** on an hourly basis to evaluate market activity and liquidity.\n- **Conducting detailed intraday market research** based on historical data.\n- **Supporting high-frequency trading** strategies with precise historical market insights.\n\n### Target Audience\n- **Financial analysts** examining short-term trends in digital asset markets.\n- **Cryptocurrency investors** making rapid decisions based on intraday performance.\n- **Researchers** studying hourly market dynamics and their implications.\n- **Developers** creating real-time analytical tools and dashboards for market data.\n- **High-frequency traders** seeking detailed hourly data to inform their strategies.\n\nThis endpoint is crucial for anyone looking to delve into the intraday dynamics of the digital asset industry. By providing detailed hourly data on market capitalisation, open-high-low values, and top-tier trading volumes, it enables users to make informed decisions supported by precise historical insights. Developers can utilise this endpoint to build sophisticated real-time analytical tools, intraday performance trackers, and high-frequency trading platforms. Start leveraging this endpoint to gain a comprehensive view of the digital asset market's hourly performance and enhance your data-driven decision-making capabilities.","tags":["Overview"],"operationId":"overview_v1_historical_marketcap_all_assets_hours","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_histo","x-endpoint-group-name":"MktCap Historical OHLCV","parameters":[{"name":"groups","in":"query","description":"When requesting all market cap historical data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","VOLUME"],"x-enum-properties-info":{}}}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true}},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/overview/v1/latest/marketcap/ftw/tick":{"get":{"summary":"MktCap Latest Tick FTW Universe","description":"Tailored specifically for assets in the FTW Universe, this endpoint offers a specialised view of the market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. These assets meet rigorous criteria, including: (1) trading in U.S. Dollars on at least three contributing exchanges, (2) having available custody of institutional quality, and (3) maintaining a clean slate from any identification as a scam or fraud. Should an asset fall off contributing exchanges entirely, it's promptly removed from any multi-coin index on a t+2 basis and its pricing within the FTWBP ceases. This endpoint becomes a vital tool for those invested in or tracking the FTW Universe, offering key market cap data points specific to this esteemed subset of assets.","x-extended-description-with-markdown":"Tailored specifically for assets in the FTW Universe, this endpoint offers a specialised view of the market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. These assets meet rigorous criteria, including: (1) trading in U.S. Dollars on at least three contributing exchanges, (2) having available custody of institutional quality, and (3) maintaining a clean slate from any identification as a scam or fraud. Should an asset fall off contributing exchanges entirely, it's promptly removed from any multi-coin index on a t+2 basis and its pricing within the FTWBP ceases. This endpoint becomes a vital tool for those invested in or tracking the FTW Universe, offering key market cap data points specific to this esteemed subset of assets.\n\n### Use Cases\n- **Monitoring market capitalisation** of digital assets within the FT Wilshire Digital Asset Index Series.\n- **Analysing market trends** for assets that meet stringent FTW Universe criteria.\n- **Ensuring compliance** with investment guidelines by tracking qualified assets.\n- **Evaluating the impact of asset inclusion or exclusion** from the FTW Universe.\n- **Integrating specialised market cap data** into financial models and investment strategies.\n\n### Target Audience\n- **Investors** and **fund managers** focused on assets within the FTW Universe.\n- **Financial analysts** conducting detailed studies on the FT Wilshire Digital Asset Index Series.\n- **Developers** building tools and applications for tracking FTW Universe assets.\n- **Institutional custodians** monitoring assets for compliance and quality.\n- **Researchers** studying the market dynamics of high-quality digital assets.\n\nThis endpoint is indispensable for those involved with the FTW Universe, providing crucial market capitalisation data for assets that adhere to the highest standards. By delivering specialised insights into the FT Wilshire Digital Asset Index Series, it supports informed investment decisions and compliance with stringent criteria. Utilising this endpoint, developers can create advanced financial tools, such as custom indices, investment portfolios, and compliance tracking systems. Start leveraging this endpoint to gain a deeper understanding of the FTW Universe and build innovative solutions for high-quality digital asset management.","tags":["Overview"],"operationId":"overview_v1_latest_marketcap_ftw_tick","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_tick","x-endpoint-group-name":"MktCap Latest Tick","parameters":[{"name":"groups","in":"query","description":"When requesting ftw universe market cap tick data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","VALUE","LAST_UPDATE","CURRENT_HOUR","CURRENT_DAY","MOVING_24_HOUR"],"x-enum-properties-info":{}}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_TICK_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/overview/v1/historical/marketcap/ftw/assets/days":{"get":{"summary":"MktCap Historical OHLCV FTW Universe Day","description":"Tailored for the FTW Universe, this endpoint provides a comprehensive historical daily overview of market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. Users can explore day-by-day total market cap figures, along with daily open-high-low values and top-tier trading volumes, for assets that meet stringent criteria such as trading in U.S. Dollars on at least three contributing exchanges and maintaining institutional-quality custody. This endpoint is an essential tool for analysts, researchers, and investors focusing on the high-quality subset of digital assets within the FTW Universe, offering detailed insights into market trends and asset performance over time.","x-extended-description-with-markdown":"Tailored for the FTW Universe, this endpoint provides a comprehensive historical daily overview of market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. Users can explore day-by-day total market cap figures, along with daily open-high-low values and top-tier trading volumes, for assets that meet stringent criteria such as trading in U.S. Dollars on at least three contributing exchanges and maintaining institutional-quality custody. This endpoint is an essential tool for analysts, researchers, and investors focusing on the high-quality subset of digital assets within the FTW Universe, offering detailed insights into market trends and asset performance over time.\n\n### Use Cases\n- **Reviewing historical market capitalisation trends** for FTW Universe assets.\n- **Analysing daily open-high-low values** to identify market patterns and volatility.\n- **Assessing top-tier trading volumes** to evaluate market activity and liquidity.\n- **Conducting specialised market research** based on historical data for high-quality digital assets.\n- **Supporting investment strategies** with detailed historical insights specific to FTW Universe assets.\n\n## Target Audience\n- **Financial analysts** examining long-term trends within the FT Wilshire Digital Asset Index Series.\n- **Cryptocurrency investors** focusing on high-quality digital assets in the FTW Universe.\n- **Researchers** studying the historical performance and market dynamics of FTW Universe assets.\n- **Developers** building analytical tools and dashboards tailored to the FTW Universe.\n- **Institutional investors** and fund managers requiring detailed historical data for compliance and investment decisions.\n\nThis endpoint is indispensable for those concentrating on the FTW Universe, providing critical historical data on market capitalisation, open-high-low values, and top-tier trading volumes for a select group of high-quality digital assets. By delivering detailed daily insights, it supports informed decision-making and compliance with stringent investment criteria. Developers can leverage this endpoint to create advanced analytical tools, historical performance trackers, and specialised research platforms. Start utilising this endpoint to gain a thorough understanding of the FTW Universe's past performance and enhance your data-driven decision-making processes.","tags":["Overview"],"operationId":"overview_v1_historical_marketcap_ftw_assets_days","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_histo","x-endpoint-group-name":"MktCap Historical OHLCV","parameters":[{"name":"groups","in":"query","description":"When requesting ftw universe market cap historical data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","VOLUME"],"x-enum-properties-info":{}}}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true}},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/overview/v1/historical/marketcap/ftw/assets/hours":{"get":{"summary":"MktCap Historical OHLCV FTW Universe Hour","description":"Tailored for the FTW Universe, this endpoint provides a comprehensive historical hourly overview of market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. Users can access hour-by-hour total market cap figures, along with hourly open-high-low values and top-tier trading volumes, for assets that meet rigorous criteria such as trading in U.S. Dollars on at least three contributing exchanges and maintaining institutional-quality custody. This endpoint is an essential tool for analysts, researchers, and investors focusing on high-quality digital assets within the FTW Universe, offering detailed insights into intraday market trends and asset performance.","x-extended-description-with-markdown":"Tailored for the FTW Universe, this endpoint provides a comprehensive historical hourly overview of market capitalisation for digital assets that are part of the FT Wilshire Digital Asset Index Series. Users can access hour-by-hour total market cap figures, along with hourly open-high-low values and top-tier trading volumes, for assets that meet rigorous criteria such as trading in U.S. Dollars on at least three contributing exchanges and maintaining institutional-quality custody. This endpoint is an essential tool for analysts, researchers, and investors focusing on high-quality digital assets within the FTW Universe, offering detailed insights into intraday market trends and asset performance.\n\n### Use Cases\n- **Reviewing intraday market capitalisation trends** for FTW Universe assets.\n- **Analysing hourly open-high-low values** to identify short-term market patterns and volatility.\n- **Assessing top-tier trading volumes** on an hourly basis to evaluate market activity and liquidity.\n- **Conducting specialised intraday market research** based on historical data for high-quality digital assets.\n- **Supporting high-frequency trading strategies** with precise historical insights specific to FTW Universe assets.\n\n### Target Audience\n- **Financial analysts** examining short-term trends within the FT Wilshire Digital Asset Index Series.\n- **Cryptocurrency investors** focusing on high-quality digital assets in the FTW Universe.\n- **Researchers** studying hourly market dynamics and their implications for FTW Universe assets.\n- **Developers** creating real-time analytical tools and dashboards tailored to the FTW Universe.\n- **High-frequency traders** requiring detailed hourly data for informed trading decisions.\n\nThis endpoint is indispensable for those concentrating on the FTW Universe, providing critical historical hourly data on market capitalisation, open-high-low values, and top-tier trading volumes for a select group of high-quality digital assets. By delivering detailed hourly insights, it supports informed decision-making and compliance with stringent investment criteria. Developers can leverage this endpoint to create sophisticated real-time analytical tools, intraday performance trackers, and high-frequency trading platforms. Start utilising this endpoint to gain a thorough understanding of the FTW Universe's intraday performance and enhance your data-driven decision-making processes.","tags":["Overview"],"operationId":"overview_v1_historical_marketcap_ftw_assets_hours","x-section":"Overview","x-roles-required":[],"x-cache-length-seconds":300,"x-visible-in-ai":false,"x-endpoint-group-id":"overview_v1_latest_marketcap_histo","x-endpoint-group-name":"MktCap Historical OHLCV","parameters":[{"name":"groups","in":"query","description":"When requesting ftw universe market cap historical data you can filter by specific groups of interest. To do so just pass the groups of interest into the URL as a comma separated list. If left empty it will get all data that your account is allowed to access.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"array","default":[],"items":{"type":"string","enum":["ID","OHLC","VOLUME"],"x-enum-properties-info":{}}}},{"name":"limit","in":"query","description":"The number of data points to return","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":30,"minimum":1,"maximum":2000}},{"name":"to_ts","in":"query","description":"Returns historical data up to and including this Unix timestamp. When using the to_ts parameter to paginate through data, the earliest timestamp in the current batch will also appear as the latest timestamp in the next batch. To avoid duplicates, you should either deduplicate the overlapping timestamp or adjust the to_ts value to skip the duplicate. Adjustments should be made as follows: subtract 60 seconds for minute data, 3600 seconds for hourly data, or 86400 seconds for daily data. To retrieve all available historical data, use limit=2000 and continue requesting in batches: &limit=2000&to_ts={adjusted earliest Unix timestamp received}. The to_ts parameter must be in seconds since the epoch.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","x-is-timestamp":true}},{"name":"aggregate","in":"query","description":"The number of points to aggregate for each returned value. E.g. passing 5 on a minute histo data endpoint will return data at 5 minute intervals. You are still limited to a maximum of 2000 minute points so the maximum you can get is 400 5 minutes interval entries. The timestamp (to_ts) you provide determines the last full aggregation bucket. If to_ts falls within an interval, the returned data will include the entire interval that to_ts belongs to.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":30}},{"name":"fill","in":"query","description":"Boolean value, if set to false or 0 we will not return data points for periods with no trading activity.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"boolean","default":true}},{"name":"response_format","in":"query","description":"This parameter allows you to choose the format of the data response from the API. Select \"JSON\" for a structured JSON object, suitable for programmatic access and manipulation. Select \"CSV\" for a text file that includes a header row and multiple data rows, with comma-separated values and new line delimiters, ideal for spreadsheet applications or bulk data processing.","required":false,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"JSON","enum":["JSON","CSV"],"x-enum-properties-info":{}}}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/admin/v1/rate/limit":{"get":{"summary":"Rate Limit Verification","description":"The Rate Limit Verification endpoint has been updated from /admin/v1/rate/limit to /admin/v2/rate/limit to ensure consistency across our API. The new version uses uppercase keys and includes type information for each object, aligning it with the standards of our other endpoints.","x-extended-description-with-markdown":"The Rate Limit Verification endpoint has been updated from /admin/v1/rate/limit to /admin/v2/rate/limit to ensure consistency across our API. The new version uses uppercase keys and includes type information for each object, aligning it with the standards of our other endpoints.\n\nThis change enhances the uniformity of our API responses, making it easier for developers to parse and handle data. In the new version:\n- **Uppercase Keys**: All keys are now in uppercase (e.g., API_KEY, USED, SECOND), providing a consistent naming convention across all endpoints.\n- **Type Information**: Each object includes a TYPE field that provides explicit type information, aiding in data validation and integration.\n\nWhy the Change?\n- **Consistency**: Aligns the endpoint with the rest of our API, which already uses uppercase keys and includes type fields.\n- **Improved Parsing**: Uniform key naming and type information simplify data handling and reduce the likelihood of errors.\n- **Enhanced Data Structure**: Provides clearer data definitions, making it easier to understand and utilize the API responses.\n\nAction Required:\n- **Update Endpoint URL**: Change your API calls from /admin/v1/rate/limit to /admin/v2/rate/limit.\n- **Adjust Key References**: Modify your code to use uppercase keys and handle the new TYPE fields.\n- **Test Your Implementation**: Ensure your application works correctly with the updated response format.\n\nBy migrating to the new endpoint, you'll benefit from improved consistency and better integration with our API's overall structure. We recommend updating your implementation as soon as possible to maintain compatibility with future updates.","tags":["Deprecated"],"operationId":"admin_v1_rate_limit","x-section":"Deprecated","x-roles-required":["free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"admin_v1_rate_limit","x-endpoint-group-name":"Rate Limit Verification","deprecated":true,"x-superseded-by-operation-id":"admin_v2_rate_limit","responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GENERIC_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/admin/v2/rate/limit":{"get":{"summary":"Rate Limit Verification","description":"This endpoint allows clients to check their current rate limit status. Making a call to this endpoint counts against your rate limit. It is recommended to use the X-RateLimit-* headers returned in each response to monitor your rate limits without calling this endpoint directly.","tags":["Utilities"],"operationId":"admin_v2_rate_limit","x-section":"Utilities","x-roles-required":["free"],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"admin_v2_rate_limit","x-endpoint-group-name":"Rate Limit Verification","deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RATE_LIMIT_RESPONSE_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}},"security":[{"api_key":[]},{"http_basic":[]}]}},"/info/v1/version":{"get":{"summary":"Version","description":"This endpoint returns the current API version, allowing clients to track any updates or changes to the API. The version includes three key components: the main version tied to the base URL, which only changes if there’s a URL update (ensuring no breaking changes without a URL change); a format version number that reflects breaking changes, though this rarely changes and would be announced 6 months in advance; and an internal package version that tracks system deployments. Clients can use this information to ensure compatibility with the latest API updates.","tags":["Utilities"],"operationId":"info_v1_version","x-section":"Utilities","x-roles-required":[],"x-cache-length-seconds":0,"x-visible-in-ai":false,"x-endpoint-group-id":"info_v1_version","x-endpoint-group-name":"Version","deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/API_VERSION_DATA_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/info/v1/openapi":{"get":{"summary":"OpenAPI Full API","description":"This endpoint delivers the OpenAPI (formerly known as Swagger) specification for our API, offering a blueprint for generating client libraries, comprehensive documentation, and other essential resources. Utilize this endpoint to streamline integration processes, enhance client-side functionality, and gain easier access to our range of services.","tags":["Utilities"],"operationId":"info_v1_openapi","x-section":"Utilities","x-roles-required":[],"x-cache-length-seconds":600,"x-visible-in-ai":false,"x-endpoint-group-id":"info_v1_openapi_group","x-endpoint-group-name":"OpenAPI","deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GENERIC_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}},"/info/v1/openapi/endpoint":{"get":{"summary":"OpenAPI Single Endpoint","description":"This endpoint supplies the OpenAPI (previously known as Swagger) specification for a single, specific API endpoint. It provides a detailed, expanded view, serving as a one-stop resource for information related to that particular endpoint. Use this specialized endpoint for focused integration tasks, troubleshooting, or to understand the nuances of individual API features.","tags":["Utilities"],"operationId":"info_v1_openapi_endpoint","x-section":"Utilities","x-roles-required":[],"x-cache-length-seconds":600,"x-visible-in-ai":false,"x-endpoint-group-id":"info_v1_openapi_group","x-endpoint-group-name":"OpenAPI","parameters":[{"name":"url","in":"query","description":"The URL path of the specific API endpoint you wish to query.","required":true,"explode":false,"style":"form","deprecated":false,"schema":{"type":"string","default":"/info/v1/openapi","enum":["/index/cc/v1/latest/tick","/index/cc/v1/historical/days","/index/cc/v1/historical/hours","/index/cc/v1/historical/minutes","/index/cc/v1/historical/days/ccda","/index/cc/v2/historical/messages/hour","/index/cc/v2/historical/messages","/index/cc/v1/latest/instrument/metadata","/index/cc/v1/markets","/index/cc/v2/markets","/index/cc/v1/markets/instruments","/index/cc/v1/markets/instruments/unmapped","/index/cc/v1/latest/tick/forex","/index/cc/v1/historical/days/forex","/index/cc/v1/historical/hours/forex","/index/cc/v1/historical/minutes/forex","/index/cc/v1/markets/instruments/unmapped/forex","/index/cc/v1/markets/instruments/unmapped/eod","/index/cc/v1/historical/days/eod","/index/cc/v1/historical/days/composition","/index/cc/v1/reconstitution","/spot/v1/latest/tick","/spot/v1/latest/tick/asset","/spot/v2/latest/tick/asset","/spot/v1/historical/days","/spot/v1/historical/hours","/spot/v1/historical/minutes","/spot/v2/historical/trades/hour","/spot/v2/historical/trades","/spot/v1/historical/orderbook/l2/metrics/minute","/spot/v2/historical/orderbook/l2/snapshots/minute","/spot/v1/historical/orderbook/l2/consolidated/metrics/minute","/spot/v1/historical/orderbook/l2/consolidated/snapshots/minute","/spot/v1/latest/instrument/metadata","/spot/v1/markets","/spot/v2/markets","/spot/v1/markets/instruments","/spot/v1/markets/instruments/unmapped","/futures/v1/latest/tick","/futures/v1/historical/days","/futures/v1/historical/hours","/futures/v1/historical/minutes","/futures/v2/historical/trades/hour","/futures/v2/historical/trades","/futures/v2/historical/orderbook/l2/metrics/minute","/futures/v2/historical/orderbook/l2/snapshots/minute","/futures/v1/latest/open-interest/tick","/futures/v1/historical/open-interest/days","/futures/v1/historical/open-interest/hours","/futures/v1/historical/open-interest/minutes","/futures/v2/historical/open-interest-messages/hour","/futures/v2/historical/open-interest-messages","/futures/v1/latest/funding-rate/tick","/futures/v1/historical/funding-rate/days","/futures/v1/historical/funding-rate/hours","/futures/v1/historical/funding-rate/minutes","/futures/v2/historical/funding-rate-messages/hour","/futures/v2/historical/funding-rate-messages","/futures/v2/historical/settled-funding-rate-messages","/futures/v1/latest/liquidation/tick","/futures/v1/historical/liquidation/days","/futures/v1/historical/liquidation/hours","/futures/v1/historical/liquidation/minutes","/futures/v2/historical/liquidation-messages/hour","/futures/v2/historical/liquidation-messages","/futures/v1/latest/instrument/metadata","/futures/v1/markets","/futures/v2/markets","/futures/v1/markets/instruments","/futures/v1/markets/instruments/unmapped","/options/v1/latest/tick","/options/v1/historical/days","/options/v1/historical/hours","/options/v1/historical/minutes","/options/v2/historical/trades/hour","/options/v2/historical/trades","/options/v1/historical/orderbook/l2/metrics/minute","/options/v1/historical/orderbook/l2/snapshots/minute","/options/v1/latest/open-interest/tick","/options/v1/historical/open-interest/days","/options/v1/historical/open-interest/hours","/options/v1/historical/open-interest/minutes","/options/v2/historical/open-interest-messages/hour","/options/v2/historical/open-interest-messages","/options/v1/latest/instrument/metadata","/options/v1/markets","/options/v2/markets","/options/v1/markets/instruments","/options/v1/markets/instruments/unmapped","/index/v1/latest/tick","/index/v1/historical/days","/index/v1/historical/hours","/index/v1/historical/minutes","/index/v2/historical/messages/hour","/index/v2/historical/messages","/index/v1/latest/instrument/metadata","/index/v1/markets","/index/v2/markets","/index/v1/markets/instruments","/index/v1/markets/instruments/unmapped","/onchain/v1/amm/latest/swap/tick","/onchain/v1/amm/historical/swap/days","/onchain/v1/amm/historical/swap/hours","/onchain/v1/amm/historical/swap/minutes","/onchain/v1/amm/historical/swap-messages/hour","/onchain/v2/amm/historical/swap-messages/hour","/onchain/v1/amm/historical/swap-messages","/onchain/v2/amm/historical/swap-messages","/onchain/v2/amm/historical/liquidity-update-messages/hour","/onchain/v2/amm/historical/liquidity-update-messages","/onchain/v1/amm/latest/instrument/metadata","/onchain/v1/amm/markets","/onchain/v2/amm/markets","/onchain/v1/amm/markets/instruments","/onchain/v1/amm/markets/instruments/unmapped","/onchain/v1/block/2","/onchain/v1/block/2/raw","/onchain/v1/block/8","/onchain/v1/block/8/raw","/onchain/v1/block/1","/onchain/v1/block/1/raw","/onchain/v1/block/2410","/onchain/v1/block/2410/raw","/onchain/v1/block/808","/onchain/v1/block/808/raw","/onchain/v1/block/3/raw","/onchain/v1/address/metadata/2","/onchain/v3/summary/by/chain","/onchain/v2/data/by/address","/onchain/v2/historical/supply/days","/onchain/v1/summary/by/chain","/onchain/v2/summary/by/chain","/onchain/v1/data/by/address","/onchain/v1/historical/supply/days/by/symbol","/onchain/v1/historical/supply/days/by/id","/onchain/v1/block/2/last","/onchain/v1/block/2/raw/last","/onchain/v1/block/8/last","/onchain/v1/block/8/raw/last","/onchain/v1/block/1/raw/last","/asset/v2/metadata","/asset/v1/top/list","/asset/v1/top/list/consensus-mechanism","/asset/v1/top/list/hashing-algorithm-type","/asset/v1/top/list/smart-contract-support-type","/asset/v1/search","/asset/v1/summary/list","/asset/v1/events","/asset/v1/historical/code-repository/days","/asset/v1/historical/discord/days","/asset/v1/historical/reddit/days","/asset/v1/historical/telegram/days","/asset/v1/historical/twitter/days","/asset/v1/metadata","/asset/v1/data/by/symbol","/asset/v1/data/by/id","/asset/v1/events/by/id","/asset/v1/events/by/symbol","/asset/v1/code/repository/days/by/id","/asset/v1/code/repository/days/by/symbol","/asset/v1/discord/days/by/id","/asset/v1/discord/days/by/symbol","/asset/v1/reddit/days/by/id","/asset/v1/reddit/days/by/symbol","/asset/v1/telegram/days/by/id","/asset/v1/telegram/days/by/symbol","/asset/v1/twitter/days/by/id","/asset/v1/twitter/days/by/symbol","/news/v1/article/list","/news/v1/source/list","/news/v1/category/list","/news/v1/article/get","/news/v1/search","/overview/v1/latest/marketcap/all/tick","/overview/v1/historical/marketcap/all/assets/days","/overview/v1/historical/marketcap/all/assets/hours","/overview/v1/latest/marketcap/ftw/tick","/overview/v1/historical/marketcap/ftw/assets/days","/overview/v1/historical/marketcap/ftw/assets/hours","/admin/v1/rate/limit","/admin/v2/rate/limit","/info/v1/version","/info/v1/openapi","/info/v1/openapi/endpoint"],"x-enum-properties-info":{}},"example":"/info/v1/openapi"}],"deprecated":false,"responses":{"200":{"description":"Success response from the API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GENERIC_RESPONSE"}}}},"400":{"description":"The 400 error occurs when some of the data sent is malformed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"401":{"description":"The 401 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"403":{"description":"The 403 error occurs when you don't use a valid API Key on an endpoint that requires authentication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"404":{"description":"The 404 error can either be returned when some/all of parameters sent are not found within our system. This could be beacuse parameters like market, instrument, news source, symbol, asset_id etc. are invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"405":{"description":"The 405 error occurs the user tries to use a http method (GET,POST,PUT etc) that is not supported.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"429":{"description":"The 429 error occurs when you go over the API Key limit. Rate limits are eforced on a second (resets every second), minute (resers every minute), hour (resets every hour), day (resets every day) and month (resets every month) granularity. You can upgrade your account and access higher rate limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"500":{"description":"The 500 error occurs our API is up but does not know how to / can't handle the request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"502":{"description":"The 502 error occurs when our API is not running. This error is returned by our proxy / load balancer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}},"503":{"description":"The 503 error occurs when there is an issue with one of our data sources and we can't even return a partial answer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ERROR"}}}}}}}},"components":{"schemas":{"GENERIC_RESPONSE":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"object","properties":{"NO_DATA":{"type":"string","description":"The endpoint does not have a response defined","example":"Please add a ResponseObject on the endpoint!"}}},"Err":{"type":"object","properties":{}}}},"GENERIC_RESPONSE_WITH_WARN":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"object","properties":{"NO_DATA":{"type":"string","description":"The endpoint does not have a response defined","example":"Please add a ResponseObject on the endpoint!"}}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ERROR":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"object","properties":{}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ERROR_WITH_WARN":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"object","properties":{}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ERROR_DATA_ARRAY":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"array","items":{"type":"object","properties":{}},"default":[]},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ERROR_DATA_ARRAY_WITH_WARN":{"type":"object","x-visible-in-ai":true,"properties":{"Data":{"type":"array","items":{"type":"object","properties":{}},"default":[]},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"INDEX_CC_CALCULATED_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":true,"properties":{"TYPE":{"type":"string","description":"Defines the type of response, indicating the expected structure and accompanying fields.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"Identifies the requested index code / index family, such as cadli, ccix, ccxrp, etc.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"Represents the internal ID of an unmapped instrument, typically formatted as \"BASE-QUOTE\" (e.g., BTC-USD). This ID is used as a unique identifier for this specific index market / code.","x-cc-api-group":"ID"},"CCSEQ":{"type":"integer","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","format":"int64","x-cc-api-group":"VALUE"},"VALUE":{"type":"number","description":"The latest calculated value of the index.","x-cc-api-group":"VALUE"},"VALUE_FLAG":{"type":"string","description":"An indicator representing whether the value has increased, decreased, or remained unchanged.","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS":{"type":"integer","description":"The time of the latest index update in Unix timestamp format (seconds).","format":"unix_timestamp","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS_NS":{"type":"integer","description":"Represents the nanosecond component of the latest index update timestamp. To calculate the full timestamp in nanoseconds, multiply the VALUE_LAST_UPDATE_TS by 1,000,000,000 (to convert seconds to nanoseconds) and then add TIMESTAMP_NS.","format":"int32","x-cc-api-group":"VALUE"},"LAST_UPDATE_QUANTITY":{"type":"number","description":"The base amount (in units) of the trade or order that caused the most recent index update. This might be 0 if the trade's volume is excluded from the calculation.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_QUOTE_QUANTITY":{"type":"number","description":"The value (in quote currency) of the trade or order that caused the most recent index update. This might be 0 if the trade's volume is excluded from the calculation.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_VOLUME_TOP_TIER":{"type":"number","description":"This is the same as LAST_UPDATE_QUANTITY but only if the trade or order happened on a \"top-tier\" market, as defined by our criteria. Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"Similar to LAST_UPDATE_QUOTE_QUANTITY, but only includes trades or orders that occurred on a \"top-tier\" market. Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_VOLUME_DIRECT":{"type":"number","description":"The same as LAST_UPDATE_QUANTITY, but only for trades or orders on instruments that directly trade in the index's base currency (e.g., USD for certain indices). Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The same as LAST_UPDATE_QUOTE_QUANTITY, but only for trades or orders on instruments that directly trade in the index's base currency  (e.g., USD for certain indices). Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"This is the same as LAST_UPDATE_QUANTITY but only for trades or orders that occurred on a \"top-tier\" market and involved instruments that directly trade in the index's base currency (e.g., USD for certain indices). Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"Similar to LAST_UPDATE_QUOTE_QUANTITY, but only for trades or orders that happened on a \"top-tier\" market and involved instruments that directly trade in the index's base currency (e.g., USD for certain indices). Otherwise, it's 0.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"integer","description":"The unique, incrementing sequence number assigned to the latest index update. It ensures relative ordering per index and instrument, helping to detect any missed updates. While it does not guarantee chronological order, it is crucial for data integrity.","format":"int64","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated from the start of the current hour up to now, updated in real time for streaming and analysis.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated from the start of the current hour up to now, updated in real time for streaming and analysis.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets aggregated from the start of the current hour up to now, used for real-time tracking and streaming.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets aggregated from the start of the current hour up to now, useful for streaming and analysis.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from instruments trading directly in the index's base currency, aggregated from the start of the current hour up to now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from instruments trading directly in the index's base currency, aggregated from the start of the current hour up to now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the start of the current hour up to now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the start of the current hour up to now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The value at the start of the current hour, based on the closest update before the hour began.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest value recorded during the current hour, starting from the hour's open. If no updates occur, it remains equal to the open.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest value recorded during the current hour, starting from the hour's open. If no updates occur, it remains equal to the open.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total number of updates recorded since the start of the current hour.","format":"int64","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The difference between the current value and the open value of the current hour, represented in the quote currency. If no updates occur, the change is 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change between the current value and the open value of the current hour. If no updates occur, the percentage change is 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated from the start of the current day (00:00:00 GMT/UTC) to now, providing a cumulative daily volume for analysis.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated from the start of the current day (00:00:00 GMT/UTC) to now, used for tracking daily quote-based volumes.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets aggregated from the start of the current day (00:00:00 GMT/UTC) to now, useful for analyzing high-tier market activity.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets aggregated from the start of the current day (00:00:00 GMT/UTC) to now, providing insights into top-tier quote-based activity.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from instruments trading directly in the index's base currency, aggregated from the start of the current day (00:00:00 GMT/UTC) to now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from instruments trading directly in the index's base currency, aggregated from the start of the current day (00:00:00 GMT/UTC) to now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the start of the current day (00:00:00 GMT/UTC) to now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the start of the current day (00:00:00 GMT/UTC) to now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The value at the start of the current day (00:00:00 GMT/UTC), based on the closest update before the day began.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest value recorded during the current day, starting from the day's open. If no updates occur, it remains equal to the open.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest value recorded during the current day, starting from the day's open. If no updates occur, it remains equal to the open.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total number of updates recorded since the start of the current day (00:00:00 GMT/UTC).","format":"int64","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The difference between the current value and the open value of the current day, represented in the quote currency. If no updates occur, the change is 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change between the current value and the open value of the current day. If no updates occur, the percentage change is 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated from Monday (00:00:00 GMT/UTC) to the current day of the week, with the current day's volume dynamically added for real-time weekly analysis.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated from Monday (00:00:00 GMT/UTC) to the current day of the week, with the current day's quote volume dynamically included.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets aggregated from Monday (00:00:00 GMT/UTC) to the current day of the week, with the current day's top-tier volume added dynamically.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets aggregated from Monday (00:00:00 GMT/UTC) to the current day of the week, including the dynamically added current day's quote values.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from instruments trading directly in the index's base currency, aggregated from Monday (00:00:00 GMT/UTC) to the current day, dynamically including today's volume.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from instruments trading directly in the index's base currency, aggregated from Monday (00:00:00 GMT/UTC) to the current day, with today's quote volume added dynamically.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier markets and instruments trading directly in the index's base currency, aggregated from Monday (00:00:00 GMT/UTC) to the current day, dynamically including today's top-tier volume.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets and instruments trading directly in the index's base currency, aggregated from Monday (00:00:00 GMT/UTC) to the current day, with today's top-tier quote value added dynamically.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The value of the closest update to Monday (00:00:00 GMT/UTC) of the current week, based on the last update from the previous week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest value recorded during the current week, calculated from Monday (00:00:00 GMT/UTC) to the current moment, including today's updates.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest value recorded during the current week, calculated from Monday (00:00:00 GMT/UTC) to the current moment, including today's updates.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates recorded between Monday (00:00:00 GMT/UTC) and the current day of the week, dynamically including today's updates.","format":"int64","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The difference between the current value and the opening value for the current week, represented in the quote currency.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change between the current value and the opening value for the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, with today's volume dynamically added for real-time monthly tracking.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's quote volume.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's top-tier volume.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, including today's top-tier quote value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from instruments trading directly in the index's base currency, aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's volume.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from instruments trading directly in the index's base currency, aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's quote volume.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's top-tier volume.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets and instruments trading directly in the index's base currency, aggregated from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's top-tier quote value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The value of the closest update to the 1st day of the current month (00:00:00 GMT/UTC), based on the last update from the previous month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest value recorded during the current month, calculated from the 1st of the month (00:00:00 GMT/UTC) to the current moment, including today's updates.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest value recorded during the current month, calculated from the 1st of the month (00:00:00 GMT/UTC) to the current moment, including today's updates.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates recorded from the 1st of the month (00:00:00 GMT/UTC) to the current day, dynamically including today's updates.","format":"int64","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The difference between the current value and the opening value for the current month, represented in the quote currency.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change between the current value and the opening value for the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated from January 1st (00:00:00 GMT/UTC) to the current day of the year, dynamically including today’s volume for real-time yearly tracking.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated from January 1st (00:00:00 GMT/UTC) to the current day of the year, with today’s quote volume dynamically added.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s top-tier volume.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s top-tier quote value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from instruments trading directly in the index’s base currency, aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s volume.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from instruments trading directly in the index’s base currency, aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s quote value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier markets and instruments trading directly in the index’s base currency, aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s volume.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets and instruments trading directly in the index’s base currency, aggregated from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s quote value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The value of the closest trade to January 1st (00:00:00 GMT/UTC) of the current year, based on the last update from December 31st (23:59:59 GMT/UTC) of the previous year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest value recorded during the current year, calculated from January 1st (00:00:00 GMT/UTC) to the current moment, including today’s updates.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest value between the CURRENT_YEAR_OPEN and the lowest update value of the year excluding the current day (1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year). If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates recorded from January 1st (00:00:00 GMT/UTC) to the current day, dynamically including today’s updates.","format":"int64","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The difference between the current value and the opening value for the current year, represented in the quote currency.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change between the current value and the opening value for the current year.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_VOLUME":{"type":"number","description":"The total trade volume (in base units) aggregated over the past 24 hours, calculated from 23 completed hours (up to the beginning of the current hour) and dynamically including the current hour’s volume.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) aggregated over the past 24 hours, including 23 completed hours and dynamically adding the current hour’s quote volume.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_TOP_TIER":{"type":"number","description":"The total trade volume (in base units) from top-tier markets over the past 24 hours, dynamically including the current hour’s top-tier volume.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total trade value (in quote currency) from top-tier markets over the past 24 hours, dynamically including the current hour’s top-tier quote value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_DIRECT":{"type":"number","description":"The total trade volume (in base units) from direct trades over the past 24 hours, dynamically including the current hour’s direct volume.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from direct trades over the past 24 hours, dynamically including the current hour’s direct quote value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade volume (in base units) from top-tier direct trades over the past 24 hours, dynamically including the current hour’s top-tier direct volume.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total trade value (in quote currency) from top-tier direct trades over the past 24 hours, dynamically including the current hour’s top-tier direct quote value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The value of the closest update to the period start (23 hours + current hour ago). This is dynamically tracked and does not require separate calculations for completeness.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest value recorded within the past 24 hours, including data from 23 completed hours and dynamically factoring in the current hour.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest value recorded within the past 24 hours, calculated from 23 completed hours and dynamically incorporating updates from the current hour.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates over the past 24 hours, calculated dynamically from 23 completed hours and including updates from the current hour.","format":"int64","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The absolute change in value over the past 24 hours, comparing the current value to the opening value for the period.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change in value over the past 24 hours, dynamically comparing the current value to the opening value for the period.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) over the past 7 days, calculated as 6 full days plus the current day, starting from 7 days ago up to the beginning of the current day, dynamically including the current day’s volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) over the past 7 days, calculated as 6 full days plus the current day, dynamically aggregating the current day’s quote volume to the values from the previous 6 full days.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade volume (in base units) over the past 7 days, calculated as 6 full days plus the current day, dynamically including the current day’s top-tier volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade value (in quote currency) over the past 7 days, calculated as 6 full days plus the current day, dynamically adding the current day’s top-tier quote volume to the previous days.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_DIRECT":{"type":"number","description":"The total direct trade volume (in base units) over the past 7 days, calculated as 6 full days plus the current day, dynamically including the current day’s direct volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total direct trade value (in quote currency) over the past 7 days, calculated as 6 full days plus the current day, dynamically aggregating the current day’s direct quote volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade volume (in base units) over the past 7 days, calculated as 6 full days plus the current day, dynamically including the current day’s top-tier direct volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade value (in quote currency) over the past 7 days, calculated as 6 full days plus the current day, dynamically adding the current day’s top-tier direct quote volume.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The value of the closest index update to the start of the period (7 days ago before 00:00:00 GMT/UTC), reflecting the opening value for the 6 full days plus the current day.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest value recorded over the past 7 days, calculated as 6 full days plus the current day, dynamically updated to include the current day’s high if applicable.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest value recorded over the past 7 days, calculated as 6 full days plus the current day, dynamically updated to include the current day’s low if applicable.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates between 7 days ago (6 full days + the current day) and the beginning of the current day, dynamically including updates from the current day.","format":"int64","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The absolute change in value over the past 7 days, calculated as 6 full days plus the current day, dynamically comparing the current value with the opening value for the period.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change over the past 7 days, calculated as 6 full days plus the current day, dynamically calculated by comparing the current value with the opening value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) over the past 30 days, calculated as 29 full days plus the current day. The calculation starts 30 days ago up to the beginning of the current day and dynamically includes the current day’s volume.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) over the past 30 days, calculated as 29 full days plus the current day. The current day’s quote volume is dynamically aggregated with the values from the previous 29 full days.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade volume (in base units) over the past 30 days, calculated as 29 full days plus the current day. The current day’s top-tier volume is dynamically included in the total.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade value (in quote currency) over the past 30 days, calculated as 29 full days plus the current day. This metric dynamically includes the current day’s top-tier quote volume.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_DIRECT":{"type":"number","description":"The total direct trade volume (in base units) over the past 30 days, calculated as 29 full days plus the current day. This metric dynamically includes the current day’s direct volume.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total direct trade value (in quote currency) over the past 30 days, calculated as 29 full days plus the current day. The current day’s direct quote volume is dynamically aggregated.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade volume (in base units) over the past 30 days, calculated as 29 full days plus the current day. This metric dynamically includes the current day’s top-tier direct volume.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade value (in quote currency) over the past 30 days, calculated as 29 full days plus the current day. The current day’s top-tier direct quote volume is dynamically added.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The value of the closest index update to the start of the period (30 days ago before 00:00:00 GMT/UTC), the opening value for the 29 full days and the current day.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest value recorded over the past 30 days, calculated as 29 full days plus the current day. This value dynamically updates to include the current day’s high if applicable.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest value recorded over the past 30 days, calculated as 29 full days plus the current day. This value dynamically updates to include the current day’s low if applicable.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates over the past 30 days, calculated as 29 full days plus the current day. The updates from the current day are dynamically included in the total.","format":"int64","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The absolute change in value over the past 30 days, calculated as 29 full days plus the current day. This metric dynamically compares the current value with the opening value for the period.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change over the past 30 days, calculated as 29 full days plus the current day. The percentage is dynamically calculated by comparing the current value with the opening value for the period.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) over the past 90 days, calculated as 89 full days plus the current day. The calculation starts 90 days ago up to the beginning of the current day and dynamically includes the current day’s volume.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) over the past 90 days, calculated as 89 full days plus the current day. The current day’s quote volume is dynamically aggregated with the values from the previous 89 full days.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade volume (in base units) over the past 90 days, calculated as 89 full days plus the current day. The current day’s top-tier volume is dynamically included in the total.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade value (in quote currency) over the past 90 days, calculated as 89 full days plus the current day. This metric dynamically includes the current day’s top-tier quote volume.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_DIRECT":{"type":"number","description":"The total direct trade volume (in base units) over the past 90 days, calculated as 89 full days plus the current day. This metric dynamically includes the current day’s direct volume.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total direct trade value (in quote currency) over the past 90 days, calculated as 89 full days plus the current day. The current day’s direct quote volume is dynamically aggregated.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade volume (in base units) over the past 90 days, calculated as 89 full days plus the current day. This metric dynamically includes the current day’s top-tier direct volume.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade value (in quote currency) over the past 90 days, calculated as 89 full days plus the current day. The current day’s top-tier direct quote volume is dynamically added.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The value of the closest index update to the start of the period (90 days ago before 00:00:00 GMT/UTC), the opening value for the 89 full days plus the current day.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value recorded over the past 90 days, calculated as 89 full days plus the current day. This value dynamically updates to include the current day’s high if applicable.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest value recorded over the past 90 days, calculated as 89 full days plus the current day. This value dynamically updates to include the current day’s low if applicable.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates over the past 90 days, calculated as 89 full days plus the current day. The updates from the current day are dynamically included in the total.","format":"int64","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The absolute change in value over the past 90 days, calculated as 89 full days plus the current day. This metric dynamically compares the current value with the opening value for the period.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change over the past 90 days, calculated as 89 full days plus the current day. The percentage is dynamically calculated by comparing the current value with the opening value for the period.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) over the past 180 days, calculated as 179 full days plus the current day. The calculation dynamically aggregates the current day’s volume with the previous 179 full days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) over the past 180 days, calculated as 179 full days plus the current day. The metric dynamically includes the current day’s quote volume alongside the previous 179 days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade volume (in base units) over the past 180 days, calculated as 179 full days plus the current day. This includes the dynamically updated current day’s top-tier volume.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade value (in quote currency) over the past 180 days, calculated as 179 full days plus the current day. The metric dynamically includes the current day’s top-tier quote volume.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_DIRECT":{"type":"number","description":"The total direct trade volume (in base units) over the past 180 days, calculated as 179 full days plus the current day. This dynamically adds the current day’s direct volume to the previous days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total direct trade value (in quote currency) over the past 180 days, calculated as 179 full days plus the current day. The metric includes the dynamically updated current day’s direct quote volume.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade volume (in base units) over the past 180 days, calculated as 179 full days plus the current day. This dynamically includes the current day’s top-tier direct volume.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade value (in quote currency) over the past 180 days, calculated as 179 full days plus the current day. The current day’s top-tier direct quote volume is dynamically added.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The value of the closest index update to the start of the period (180 days ago before 00:00:00 GMT/UTC). The opening value for the 179 full days plus the current day.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The highest value recorded over the past 180 days, calculated as 179 full days plus the current day. This value dynamically updates to include the current day’s high if applicable.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest value recorded over the past 180 days, calculated as 179 full days plus the current day. This dynamically updates to include the current day’s low if applicable.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates over the past 180 days, calculated as 179 full days plus the current day. The metric dynamically includes updates from the current day.","format":"int64","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The absolute change in value over the past 180 days, calculated as 179 full days plus the current day. This dynamically compares the current value with the opening value for the period.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change over the past 180 days, calculated as 179 full days plus the current day. The percentage is dynamically calculated by comparing the current value with the opening value for the period.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_VOLUME":{"type":"number","description":"The total trade volume (in base units) over the past 365 days, calculated as 364 full days plus the current day. This metric dynamically aggregates the current day’s volume with the previous 364 full days.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"number","description":"The total trade value (in quote currency) over the past 365 days, calculated as 364 full days plus the current day. This dynamically includes the current day’s quote volume alongside the previous 364 days.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade volume (in base units) over the past 365 days, calculated as 364 full days plus the current day. This dynamically adds the current day’s top-tier volume.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total top-tier trade value (in quote currency) over the past 365 days, calculated as 364 full days plus the current day. This dynamically includes the current day’s top-tier quote volume.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_DIRECT":{"type":"number","description":"The total direct trade volume (in base units) over the past 365 days, calculated as 364 full days plus the current day. This dynamically adds the current day’s direct volume to the previous days.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total direct trade value (in quote currency) over the past 365 days, calculated as 364 full days plus the current day. This dynamically includes the current day’s direct quote volume.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade volume (in base units) over the past 365 days, calculated as 364 full days plus the current day. This dynamically includes the current day’s top-tier direct volume.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total top-tier direct trade value (in quote currency) over the past 365 days, calculated as 364 full days plus the current day. This dynamically adds the current day’s top-tier direct quote volume.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The value of the closest index update to the start of the period (365 days ago before 00:00:00 GMT/UTC). The opening value for the 364 full days plus the current day.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest value recorded over the past 365 days, calculated as 364 full days plus the current day. This dynamically updates to include the current day’s high if applicable.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest value recorded over the past 365 days, calculated as 364 full days plus the current day. This dynamically updates to include the current day’s low if applicable.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates over the past 365 days, calculated as 364 full days plus the current day. This metric dynamically includes updates from the current day.","format":"int64","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The absolute change in value over the past 365 days, calculated as 364 full days plus the current day. This dynamically compares the current value with the opening value for the period.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change over the past 365 days, calculated as 364 full days plus the current day. This percentage is dynamically calculated by comparing the current value with the opening value for the period.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"integer","description":"The timestamp of the very first update recorded for this instrument, represented as a Unix timestamp.","format":"unix_timestamp","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"number","description":"The total accumulated trade volume (in base units) from all updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"number","description":"The total accumulated trade value (in quote currency) from all updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_TOP_TIER":{"type":"number","description":"The total accumulated trade volume (in base units) from top-tier updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total accumulated trade value (in quote currency) from top-tier updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_DIRECT":{"type":"number","description":"The total accumulated trade volume (in base units) from direct updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total accumulated trade value (in quote currency) from direct updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total accumulated trade volume (in base units) from top-tier direct updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total accumulated trade value (in quote currency) from top-tier direct updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The value of the first update recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The highest recorded value from all updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"integer","description":"The timestamp of the highest recorded update for this instrument, represented as a Unix timestamp.","format":"unix_timestamp","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The lowest recorded value from all updates for this instrument over its entire lifetime.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"integer","description":"The timestamp of the lowest recorded update for this instrument, represented as a Unix timestamp.","format":"unix_timestamp","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total count of updates recorded for this instrument over its entire lifetime.","format":"int64","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The absolute change in value from the opening value (LIFETIME_OPEN) to the current value for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change in value from the opening value (LIFETIME_OPEN) to the current value for this instrument.","x-cc-api-group":"LIFETIME"}}},"INDEX_CC_CALCULATED_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","description":"An object where each key represents a validated instrument from the required instruments array, and the value contains all the properties defined through the specified groups parameter.","additionalProperties":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":true,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the histo period, for minute it would be every minute at the beginning of the minute, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","format":"unix_timestamp"},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The index family - a group of indices sharing common characteristics like methodology, type of securities, geographical region, sector, or company size. It's a crucial categorization in data analysis, aiding in performance comparison of different indices and understanding broader market trends.","example":"ccix","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The specific financial asset pair that an index is tracking in unmapped format. In most cases this is a combiation of the base and quote assets of the pair.","example":"BTC-USD","x-cc-api-group":"ID"},"OPEN":{"type":"number","description":"The initial value (price) of an index at market opening on a trading period. It's a significant data point used to understand the initial market sentiment, calculate various technical indicators, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The maximum value an index (price) reaches during a specific trading period. It's a significant data point used to understand the index's potential and volatility, calculate the range of daily movement, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The minimum value (price) an index reaches during a specific trading period. It's a vital data point used to understand the index's volatility and risk, calculate the range of daily movement, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The last value (price) of an index at the end of a trading period. It's a critical data point used for performance comparison, calculations like daily return or volatility, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the initial index update in the time period (only available when we have at least one index update in the time period).","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the last index update in the time period (only available when we have at least one index update in the time period).","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_VALUE":{"type":"number","description":"The open value (price) based on the inital index update in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_VALUE":{"type":"number","description":"The maximum value an index (price) based on all the index updates in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the maximum value an index (price) based on all the index updates in the time period (only available when we have at least one index update in the time period).","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_VALUE":{"type":"number","description":"The minimum value an index (price) based on all the index updates in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the the minimum value an index (price) based on all the index updates in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_VALUE":{"type":"number","description":"The last value (price) of an index based on the last index update in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"VOLUME":{"type":"number","description":"The total number of base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The total number of quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"},"VOLUME_TOP_TIER":{"type":"number","description":"The total number of top tier base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_TOP_TIER":{"type":"number","description":"The total number of top tier quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"},"VOLUME_DIRECT":{"type":"number","description":"The total number of direct base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_DIRECT":{"type":"number","description":"The total number of direct quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"},"VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total number of top tier direct base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_TOP_TIER_DIRECT":{"type":"number","description":"The total number of top tier direct quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"},"TOTAL_INDEX_UPDATES":{"type":"number","description":"The total number of message updates seen in this time period (0 when there no messages in the time period).","x-cc-api-group":"MESSAGE"}}},"INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_CALCULATED_DATA_FIXINGS_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the histo period, for minute it would be every minute at the beginning of the minute, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","format":"unix_timestamp"},"DATE_TIME_ISO_8601":{"type":"number","description":"The date time in ISO 8601 format with the UTC offset."},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The index family - a group of indices sharing common characteristics like methodology, type of securities, geographical region, sector, or company size. It's a crucial categorization in data analysis, aiding in performance comparison of different indices and understanding broader market trends.","example":"ccix","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The specific financial asset pair that an index is tracking in unmapped format. In most cases this is a combiation of the base and quote assets of the pair.","example":"BTC-USD","x-cc-api-group":"ID"},"CLOSE":{"type":"number","description":"The last value (price) of an index at the end of a trading period. It's a critical data point used for performance comparison, calculations like daily return or volatility, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"VOLUME":{"type":"number","description":"The total number of base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The total number of quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"}}},"INDEX_CC_CALCULATED_DATA_FIXINGS_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_DATA_FIXINGS_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_CALCULATED_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Defines the type of response, indicating the expected structure and accompanying fields.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"Identifies the requested index code / index family, such as cadli, ccix, ccxrp, etc.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"Represents the internal ID of an unmapped instrument, typically formatted as \"BASE-QUOTE\" (e.g., BTC-USD). This ID is used as a unique identifier for this specific index market / code.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The standardized ID of the instrument after applying mapping rules. This ID is used as a unique identifier across multiple index markets / codes.","example":"BTC-USD","x-cc-api-group":"MAPPING"},"TIMESTAMP":{"type":"integer","description":"The time of the index update in Unix timestamp format (seconds).","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"integer","description":"Represents the nanosecond component of the index update timestamp. To calculate the full timestamp in nanoseconds, multiply the TIMESTAMP by 1,000,000,000 (to convert seconds to nanoseconds) and then add TIMESTAMP_NS.","format":"int32","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The calculated value of the index at the time of the update.","x-cc-api-group":"MESSAGE"},"QUANTITY":{"type":"number","description":"The base quantity of the trade / order that triggered the index update. May be 0 if volume is excluded.","x-cc-api-group":"MESSAGE"},"QUOTE_QUANTITY":{"type":"number","description":"The quote quanity of the trade / order that triggered the index update. May be 0 if volume is excluded.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"Indicates the status of the index update.","example":"VALID","x-cc-api-group":"STATUS"},"CCSEQ":{"type":"integer","description":"A unique, incrementing sequence number assigned to each index update. It ensures relative ordering per index and instrument, helping to detect any missed updates. While it does not guarantee chronological order, it is crucial for data integrity.","format":"int64","x-cc-api-group":"MESSAGE"}}},"INDEX_CC_CALCULATED_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid index updates for the requested time period. Index updates are ordered by CCSEQ, which generally reflects the order of their calculation. Any backfilled index updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of index updates data, including historical corrections. If an index update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid index updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid index updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of each index update and you can no longer easily guarantee you have received all the index updates.","items":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_CALCULATED_WITH_VOLUME_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"OUTLIER_EXCLUSION_PERCENTAGE":{"type":"number","description":"The outlier exclusion percentage for an index instrument.","x-cc-api-group":"GENERAL"},"COMPONENTS":{"type":"array","description":"The components that make up an index instruments.","items":{"type":"string"},"x-cc-api-group":"GENERAL"},"OLDEST_HISTORICAL_DAY_DATA_TIMESTAMP":{"type":"number","description":"Oldest historical day data timestamp that was migrated from V1.","x-cc-api-group":"INTERNAL"},"OBSERVATION_PERIOD":{"type":"string","description":"Time window used to calculate TWAP indices.","x-cc-api-group":"GENERAL"},"OBSERVATION_INTERVAL":{"type":"string","description":"Frequency at which the underlying Index or Reference Rate price is observed within the Observation Period.","x-cc-api-group":"GENERAL"},"AVAILABLE_CLOSING_TIME":{"type":"object","description":"The close times by timezone available for the instrument.","properties":{},"x-cc-api-group":"GENERAL"},"OFFICIAL_CLOSING_TIME":{"type":"object","description":"The official close times by timezone for the instrument.","properties":{},"x-cc-api-group":"GENERAL"},"OLDEST_HISTORICAL_INDEX_COMPOSITION_UPDATE_TIMESTAMP":{"type":"number","description":"Oldest historical index composition update timestamp.","x-cc-api-group":"INTERNAL"},"TOTAL_INDEX_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total INDEX_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"FIRST_INDEX_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first INDEX_UPDATE that we have calculated.","properties":{},"x-cc-api-group":"FIRST_INDEX_UPDATE"},"LAST_INDEX_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last INDEX_UPDATE that we have calculated.","properties":{},"x-cc-api-group":"LAST_INDEX_UPDATE"},"TOTAL_INDEX_COMPOSITION_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total INDEX_COMPOSITION_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"FIRST_INDEX_COMPOSITION_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first INDEX_COMPOSITION_UPDATE that we have calculated.","properties":{},"x-cc-api-group":"FIRST_INDEX_UPDATE"},"LAST_INDEX_COMPOSITION_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last INDEX_COMPOSITION_UPDATE that we have calculated.","properties":{},"x-cc-api-group":"LAST_INDEX_UPDATE"}}},"INDEX_CC_CALCULATED_WITH_VOLUME_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_WITH_VOLUME_INSTRUMENT_METADATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"INDEX_CC_CALCULATED_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"INDEX_STATUS":{"type":"string","description":"The status of the CCData calculated index. We only calculate to the ACTIVE ones, for the RETIRED ones we no longer calculate index values and stats","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"INTERNAL"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total number of cryptocompare generated index value with volume updates that this family has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_INDEX_COMPOSITION_UPDATES":{"type":"number","description":"The total number of cryptocompare generated index composition updates that this family has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"API_CONVERSION_INFO":{"type":"object","description":"The api conversion information for this index.","properties":{"CONVERSION_SYMBOL":{"type":"string","description":"The quote symbol for this index.","example":"USD"},"ALLOW_FX":{"type":"boolean","description":"Boolean field denoting if we allow fx conversion on this index.","example":true}},"x-cc-api-group":"INTERNAL"}}},"INDEX_CC_CALCULATED_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"INDEX_STATUS":{"type":"string","description":"The status of the CCData calculated index. We only calculate to the ACTIVE ones, for the RETIRED ones we no longer calculate index values and stats","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"INTERNAL"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_INDEX_UPDATES":{"type":"integer","description":"The total number of cryptocompare generated index value with volume updates that this family has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_INDEX_COMPOSITION_UPDATES":{"type":"number","description":"The total number of cryptocompare generated index composition updates that this family has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"API_CONVERSION_INFO":{"type":"object","description":"The api conversion information for this index.","properties":{"CONVERSION_SYMBOL":{"type":"string","description":"The quote symbol for this index.","example":"USD"},"ALLOW_FX":{"type":"boolean","description":"Boolean field denoting if we allow fx conversion on this index.","example":true}},"x-cc-api-group":"INTERNAL"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"HAS_INDEX_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has index updates with volume generated by our index calculation engine or not.","example":true},"HAS_INDEX_COMPOSITION_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has index composition updates generated by our index calculation engine or not.","example":true},"FIRST_INDEX_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed index update with volume generated by our index calculation engine for this instrument. This represents the earliest calculation recorded. Updates are rare and backfilled data may take up to 1 hour to appear on the API.","example":1677283205,"format":"unix_timestamp"},"FIRST_INDEX_COMPOSITION_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed index composition update generated by our index calculation engine for this instrument. This represents the earliest calculation recorded. Updates are rare and backfilled data may take up to 1 hour to appear on the API.","example":1677283205,"format":"unix_timestamp"},"LAST_INDEX_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last index update generated by our index calculation engine for this instrument. This timestamp represents when the most recent index update generated by our index calculation engine was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the index update generated by our index calculation engine by timestamp endpoint.","example":1681914057,"format":"unix_timestamp"},"LAST_INDEX_COMPOSITION_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last index composition update generated by our index calculation engine for this instrument. This timestamp represents when the most recent index composition update generated by our index calculation engine was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the index update generated by our index calculation engine by timestamp endpoint.","example":1681914057,"format":"unix_timestamp"},"TOTAL_INDEX_UPDATES":{"type":"number","description":"The total number of internally calculated index values with volume updates processed for this instrument by this specific index calculation engine. This represents the cumulative updates handled by our system.","example":527301},"TOTAL_INDEX_COMPOSITION_UPDATES":{"type":"number","description":"The total number of internally calculated index composition updates processed for this instrument by this specific index calculation engine. This represents the cumulative updates handled by our system.","example":527301},"COMPONENTS":{"type":"array","description":"This field contains an array of instruments used to derive the index's values.","example":[{"TYPE":"706","MARKET":"coinbase","INSTRUMENT":"ETH-USD","CONVERSTION":{}}],"items":{"type":"string"}},"OUTLIER_EXCLUSION_PERCENTAGE":{"type":"number","description":"The outlier exclusion percentage for an index instrument. Assuming the index value is 100 and the outlier OUTLIER_EXCLUSION_PERCENTAGE is 5 the index allows updates that pushes it to down to 95.238095 or up to 105 inclusive of lower and higher bounds. ","example":5},"OLDEST_HISTORICAL_DAY_DATA_TIMESTAMP":{"type":"number","description":"The earliest historical day timestamp that has been imported or regenerated. Index updates from this period may not exist because the original calculation engine did not track index updates at that time.","example":1681914057,"format":"unix_timestamp"},"OLDEST_HISTORICAL_INDEX_COMPOSITION_UPDATE_TIMESTAMP":{"type":"number","description":"The earliest historical index composition update timestamp that has been imported or regenerated. Index updates from this period may not exist because the original calculation engine did not track index updates at that time.","example":1681914057,"format":"unix_timestamp"}}}}}}},"INDEX_CC_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_CC_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"FOREX_RATE_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","example":"1306","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The fx rate market under consideration.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The instrumentID for the forex rate","x-cc-api-group":"ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update. This is unique per fx rate market and instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"VALUE":{"type":"number","description":"The value in the to asset (quote / number symbol / coin) of the latest message. I.e. for a JPY-USD message, the fx rate for one JPY in USD).","x-cc-api-group":"VALUE"},"VALUE_FLAG":{"type":"string","description":"The flag indicating whether the value has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds as reported by the fx rate market. If the fx rate market does not provide this information, the received timestamp will be returned.","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp in seconds as reported by the fx rate market. If the fx rate market does not provide this information, the nanoseconds part of the received timestamp will be returned.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the latest message.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest message.","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open value for the current hour, this is based on the closest message occurring before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest message value of the current hour. If there were no updates in the time period, the open value will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest message value of the current hour. If there were no updates in the time period, the open value will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the current hour. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the hour. To get the average we just divide CURRENT_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the current hour. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the hour. To get the average we just divide CURRENT_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open value for the current day, this is based on the closest message occurring before the start of the current day (00:00:00 GMT/UTC). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest message value of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open value will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest message value of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open value will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the current day. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the day. To get the average we just divide CURRENT_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the current day. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the day. To get the average we just divide CURRENT_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the current DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The value of the closest message to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last message that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest traded value of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the end of the current day of the week. If today is Monday, this value will be the same as CURRENT_WEEK_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest traded value of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the end of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_LOW. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the current week. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the week. To get the average we just divide CURRENT_WEEK_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_WEEK_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the current week. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the week. To get the average we just divide CURRENT_WEEK_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_WEEK_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages between Monday (00:00:00 GMT/UTC) and the end of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the current WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The value of the closest message to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last message that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest traded value of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the end of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest traded value of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the end of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the current month. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the month. To get the average we just divide CURRENT_MONTH_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_MONTH_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the current month. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the month. To get the average we just divide CURRENT_MONTH_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_MONTH_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the end of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the current MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The value of the closest message to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last message that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest traded value of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the end of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest traded value of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the end of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the current year. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the year. To get the average we just divide CURRENT_YEAR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_YEAR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the current year. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the year. To get the average we just divide CURRENT_YEAR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by CURRENT_YEAR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the current YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The value of the closest message to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest traded value of the period. Here, the period runs from 24 hours ago. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 24 hours ago. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 24 hours ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 24 hours ago. To get the average we just divide MOVING_24_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_24_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 24 hours ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 24 hours ago. To get the average we just divide MOVING_24_HOUR_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_24_HOUR_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred in the period running from 24 hours ago.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The value of the closest message to the period start date (6 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest traded value of the period. Here, the period runs from 7 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 7 days ago up. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 7 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 7 days ago. To get the average we just divide MOVING_7_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_7_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 7 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 7 days ago. To get the average we just divide MOVING_7_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_7_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred in the period running from 7 days ago.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The value of the closest message to the period start date (29 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest traded value of the period. Here, the period runs from 30 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 30 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 30 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 30 days ago. To get the average we just divide MOVING_30_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_30_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 30 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 30 days ago. To get the average we just divide MOVING_30_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_30_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred in the period running from 30 days ago.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The value of the closest message to the period start date (89 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value of the period. Here, the period runs from 90 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 90 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 90 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 90 days ago. To get the average we just divide MOVING_90_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_90_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 90 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 90 days ago. To get the average we just divide MOVING_90_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_90_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred in the period running from 90 days.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The value of the closest message to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The  highest traded value of the period. Here, the period runs from 180 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 180 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 180 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 180 days ago. To get the average we just divide MOVING_180_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_180_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 180 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 180 days ago. To get the average we just divide MOVING_180_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_180_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred in the period from 180 days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The value of the closest message to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest value of the period. Here, the period runs from 365 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest traded value of the period. Here, the period runs from 365 days ago. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the period running from 365 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 365 days ago. To get the average we just divide MOVING_365_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_365_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the period running from 365 days ago. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period running from 365 days ago. To get the average we just divide MOVING_365_DAY_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by MOVING_365_DAY_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages that have occurred during the period running from 365 days ago.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first message ever recorded for the instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The value of the first message of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The value of the highest message ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest message ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The value of the lowest message ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest message ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated base volume of the forex instument for the entire lifetime of the instrument. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the entire lifetime of the instrument. To get the average we just divide LIFETIME_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by LIFETIME_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a base volume of 1.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"This field represents a synthetically generated quote volume of the forex instument for the entire lifetime of the instrument. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the entire lifetime of the instrument. To get the average we just divide LIFETIME_QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION by LIFETIME_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION. For each update we receive from the forex market, since they do not give us a volume we assume a quote volume 1 * value.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of all messages that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current LIFETIME_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"FOREX_RATE_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"FOREX_RATE_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the beginning of the histo period. For minute it would be every minute at the beginning of the minute, for hour it would be the start of the hour and for daily it is 00:00 GMT.","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The fx rate market under consideration.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The instrumentID for the forex rate.","x-cc-api-group":"ID"},"OPEN":{"type":"number","description":"The open value for the historical period, this is based on the closest message before the period start.","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest message value in the time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest message value in the time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The value of the last message in this time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first message in this time perio. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last message in this time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_VALUE":{"type":"number","description":"The value of the first message in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_VALUE":{"type":"number","description":"The highest value of the messages in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest message in the time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_VALUE":{"type":"number","description":"The lowest value of the messages in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest message in the time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_VALUE":{"type":"number","description":"The last message value in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"The synthetically generated base volume used for calculating average values. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"The synthetically generated quote volume used for calculating average values. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period.","x-cc-api-group":"VOLUME"},"TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages seen in this time period. If there were no messages in the time period, 0 will be returned.","x-cc-api-group":"MESSAGE"}}},"FOREX_RATE_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"FOREX_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the beginning of the histo period. For minute it would be every minute at the beginning of the minute, for hour it would be the start of the hour and for daily it is 00:00 GMT.","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The fx rate market under consideration.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The instrumentID for the forex rate.","x-cc-api-group":"ID"},"OPEN":{"type":"number","description":"The open value for the historical period, this is based on the closest message before the period start.","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest message value in the time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest message value in the time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The value of the last message in this time period. If there were no messages in the time period, the open value will be given.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first message in this time perio. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last message in this time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_VALUE":{"type":"number","description":"The value of the first message in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_VALUE":{"type":"number","description":"The highest value of the messages in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest message in the time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_VALUE":{"type":"number","description":"The lowest value of the messages in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest message in the time period. This is only available when there is at least one message in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_VALUE":{"type":"number","description":"The last message value in the time period. This is only available when there is at least one message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"The synthetically generated base volume used for calculating average values. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SYNTHETIC_FOR_AVERAGE_VALUE_CALCULATION":{"type":"number","description":"The synthetically generated quote volume used for calculating average values. It is not based on actual trading data but is created for the purpose of calculating an average value (rate or price) over the period.","x-cc-api-group":"VOLUME"},"TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of messages seen in this time period. If there were no messages in the time period, 0 will be returned.","x-cc-api-group":"MESSAGE"}}},"FOREX_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FOREX_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"FOREX_RATE_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_FOREX_RATE_UPDATES":{"type":"integer","description":"The total number of forex updates that this integration has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"BASE":{"type":"string","description":"The current mapped base asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"BTC"},"QUOTE":{"type":"string","description":"The current mapped quote asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"FIRST_FOREX_RATE_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed forex rate update for this instrument. This represents the earliest recorded value for forex rates. Updates are rare, and backfilled data may take up to 1 hour to reflect on the API.","example":1681914057,"format":"unix_timestamp"},"LAST_FOREX_RATE_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last forex rate update for this instrument. This timestamp represents when the most recent forex rate update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the forex rate updates by timestamp endpoint.","example":1681914057,"format":"unix_timestamp"},"TOTAL_FOREX_RATE_UPDATES":{"type":"number","description":"The total number of forex updates processed for this instrument by this specific forex rate provider. This represents the cumulative updates handled by our system.","example":527301}}}}}}},"FOREX_RATE_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FOREX_RATE_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"EOD_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EOD_STATUS":{"type":"string","description":"The status of the CCData calculated eod. We only calculate the ACTIVE ones, for the RETIRED ones we no longer calculate eod values and stats","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"INTERNAL"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"OLDEST_HISTORICAL_DAY_DATA_TIMESTAMP":{"type":"number","description":"The earliest historical day timestamp that has been imported or regenerated. Index updates from this period may not exist because the original calculation engine did not track index updates at that time.","example":1681914057,"format":"unix_timestamp"},"AVAILABLE_CLOSE_TIME":{"type":"string","description":"The available EOD close time for the instrument","example":1681914057},"AVAILABLE_TIMEZONE":{"type":"string","description":"The available EOD timezone for the instrument","example":1681914057}}}}}}},"EOD_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EOD_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"EOD_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the histo period, for minute it would be every minute at the beginning of the minute, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","format":"unix_timestamp"},"DATE_TIME_ISO_8601":{"type":"number","description":"The date time in ISO 8601 format with the UTC offset."},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The index family - a group of indices sharing common characteristics like methodology, type of securities, geographical region, sector, or company size. It's a crucial categorization in data analysis, aiding in performance comparison of different indices and understanding broader market trends.","example":"ccix","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The specific financial asset pair that an index is tracking in unmapped format. In most cases this is a combiation of the base and quote assets of the pair.","example":"BTC-USD","x-cc-api-group":"ID"},"CLOSE":{"type":"number","description":"The last value (price) of an index at the end of a trading period. It's a critical data point used for performance comparison, calculations like daily return or volatility, and for visual representation in charts to identify trends or patterns over time.","x-cc-api-group":"OHLC"},"VOLUME":{"type":"number","description":"The total number of base asset parts traded for the index instrument in the time period. It's a critical metric that provides insights into market liquidity and activity level. High volumes indicate high investor interest and liquidity, while low volumes suggest the opposite.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The total number of quote (counter) asset parts traded for the index instrument in the time period. This offers insight into market activity and liquidity and is used widely in numerical analysis and data visualization.","x-cc-api-group":"VOLUME"}}},"EOD_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/EOD_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_CALCULATED_COMPOSITIION_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The index code you have requested ( e.g. ccix, ccxrp, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID as provided by us for internal indices, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This serves as the unique index identifier across all markets.","example":"BTC-USD","x-cc-api-group":"MAPPING"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by us.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The value of the index","x-cc-api-group":"MESSAGE"},"DIVISOR":{"type":"number","description":"The divisor of the index","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the index update.","example":"VALID","x-cc-api-group":"STATUS"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this index update, this is unique per index and instrument. Should always be increasing by 1 for each new update we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"COMPONENTS":{"type":"array","description":"The components information that went into calculating the index.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the component object"},"MARKET":{"type":"string","description":"The market / exchange under consideration."},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID as provided by us for underlying components, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD)."},"CONVERSION_MARKET":{"type":"string","description":"The market / exchange used for conversion."},"CONVERSION_INSTRUMENT":{"type":"string","description":"The unmapped instrument ID from the market / exchange used for conversion, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD)."},"VALUE":{"type":"number","description":"The closing price of the asset at the end of the trading period or snapshot."},"CONVERSION_VALUE":{"type":"number","description":"The conversion value applied to the asset or index, representing the rate or factor used to convert the asset’s value from one unit or currency to another. "},"AMOUNT":{"type":"number","description":"The circulating supply."},"CAP_FACTOR":{"type":"number","description":"The capitalization factor used to adjust the value of the asset or index."},"CALCULATED_MOVING_24_HOUR_VOLUME":{"type":"number","description":"The moving 24 hour volume."},"CALCULATED_MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The moving 24 hour quote volume."},"WEIGHT":{"type":"number","description":"The weight assigned to this data point in the overall index calculation."},"SHARES":{"type":"number","description":"The total number of quantity needed to produce the market value."},"MARKET_VALUE":{"type":"number","description":"The total value of shares in quote currency."}}},"x-cc-api-group":"COMPONENTS"}}},"INDEX_CC_CALCULATED_COMPOSITIION_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_COMPOSITIION_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"INDEX_CC_CALCULATED_RECONSTITUTION":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"2080","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The index family - a group of indices sharing common characteristics like methodology, type of securities, geographical region, sector, or company size. It's a crucial categorization in data analysis, aiding in performance comparison of different indices and understanding broader market trends.","example":"cd_mc","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The specific financial asset pair that an index is tracking in unmapped format. In most cases this is a combination of the base and quote assets of the pair.","example":"CD20-USD","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds from which the the index value is taken.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECON_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds for the rebalance date.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The value (price) of the index at the requested timestamp.","x-cc-api-group":"MESSAGE"},"ADJUSTED_DIVISOR":{"type":"number","description":"The newly calculated divisor for the index, adjusted to maintain continuity after changes in components or their weights.","x-cc-api-group":"MESSAGE"},"COMPONENTS":{"type":"array","description":"A list of the constituent assets included in the index after the reconstitution, detailing their individual contribution.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message"},"MARKET":{"type":"string","description":"The market / exchange under consideration."},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID as provided by us for underlying components, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD)."},"VALUE":{"type":"number","description":"The value of the asset at the provided timestamp."},"AMOUNT":{"type":"number","description":"The total quantity or number of units of the asset held."},"CAP_FACTOR":{"type":"number","description":"The multiplier applied to an asset's weight to limit its influence."},"WEIGHT":{"type":"number","description":"The resulting weight of the asset within the index after reconstitution."},"SHARES":{"type":"number","description":"The number of shares of the component included in the index calculation."},"MARKET_VALUE":{"type":"number","description":"The total market value of the component."}}},"x-cc-api-group":"COMPONENTS"}}},"INDEX_CC_CALCULATED_RECONSTITUTION_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/INDEX_CC_CALCULATED_RECONSTITUTION"},"Err":{"type":"object","properties":{}}}},"SPOT_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","example":"706","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules. This takes the form: \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update. This is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"PRICE":{"type":"number","description":"The price in the to asset (quote / number symbol / coin) of the latest trade. I.e. for a BTC-USD trade, how much was paid for one BTC in USD).","x-cc-api-group":"VALUE"},"PRICE_FLAG":{"type":"string","description":"The flag indicating whether the price has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange. If the market /exchange does not provide this information, the received timestamp will be returned.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp as reported by the market / exchange. If the market /exchange does not provide this information, the received nanoseconds part of the timestamp will be returned.","x-cc-api-group":"VALUE"},"LAST_TRADE_QUANTITY":{"type":"number","description":"The quantity of the latest trade in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The volume of the latest trade in the to asset / quote.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_ID":{"type":"string","description":"The ID of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_SIDE":{"type":"string","description":"The side of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_RECEIVED_TS":{"type":"number","description":"The timestamp in seconds for the most recent trade received.","x-cc-api-group":"LAST_PROCESSED"},"LAST_TRADE_RECEIVED_TS_NS":{"type":"number","description":"The nanosecond part of the last trade received timestamp.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_TS":{"type":"number","description":"The timestamp in seconds that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the nanosecond part of the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_RECEIVED_TS":{"type":"number","description":"The timestamp in seconds for the received trade that was processed most recently (not necessarily always a new trade eg in a backfill).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_RECEIVED_TS_NS":{"type":"number","description":"The nanosecond part of the last processed trade received timestamp.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_PRICE":{"type":"number","description":"The price in the quote asset of the last trade processed, as reported by the market / exchange.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUANTITY":{"type":"number","description":"The quantity of the last processed trade in the from symbol (base / coin).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The  volume of the last processed trade in the to asset / quote.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_SIDE":{"type":"string","description":"The side of the last processed trade.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest trade.","x-cc-api-group":"LAST_PROCESSED"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best bid in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best bid in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best bid position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best bid but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best bid position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best ask in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best ask in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best ask position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best ask but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best ask position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"CURRENT_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open price for the current hour, this is based on the closest trade occurring before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest trade price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest trade price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current hour, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open price for the current day, this is based on the closest trade occurring before the start of the current day (00:00:00 GMT/UTC). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest trade price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest trade price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current day, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the current DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_VOLUME":{"type":"number","description":"The sum of all trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The price of the closest trade to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last trade that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest traded price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be the same as CURRENT_WEEK_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest traded price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_LOW. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES":{"type":"number","description":"The total number of trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current week, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the current WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The price of the closest trade to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last trade that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest traded price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest traded price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES":{"type":"number","description":"The total number of trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current month, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the current MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The price of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last trade that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest traded price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest traded price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current year, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the current YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from 24 hours ago up, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (6 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 7 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (29 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 30 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (89 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_90_DAY_OPEN and the highest traded price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 90 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The  highest traded price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 180 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 365 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_TRADE_TS":{"type":"number","description":"The timestamp of the first trade ever recorded for the instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"number","description":"The sum of all trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The price of the first trade of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The price of the highest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The price of the lowest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES":{"type":"number","description":"The total number of all trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of all buy trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of all sell trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of all unknown trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 365 days, multiplied by the USD conversion rate.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current LIFETIME_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"SPOT_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"SPOT_INSTRUMENT_MARKET_DATA_BY_ASSET":{"type":"object","x-visible-in-ai":false,"properties":{"STATS":{"type":"object","description":"Provides detailed information about the pagination of the tick data list, including current page, page size, and total instruments available. This metadata enables users to navigate and manage the displayed toplist data efficiently.","properties":{"PAGE":{"type":"integer","description":"Indicates the current page number in the tick data list, helping users track their position within paginated data.","example":1},"PAGE_SIZE":{"type":"integer","description":"Specifies the maximum number of instruments displayed on the current page, allowing control over the number of items retrieved per request.","example":10},"TOTAL_INSTRUMENTS":{"type":"integer","description":"The total number of instruments in the tick data list that match the applied filters. This value gives users an overview of the dataset's size.","example":2000}}},"LIST":{"type":"array","description":"Contains the sorted and filtered tick data list, structured according to the specified criteria (e.g., by ranking metrics or filtering options). This array provides direct access to the tick data matching the user's query.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","example":"706","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules. This takes the form: \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update. This is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"PRICE":{"type":"number","description":"The price in the to asset (quote / number symbol / coin) of the latest trade. I.e. for a BTC-USD trade, how much was paid for one BTC in USD).","x-cc-api-group":"VALUE"},"PRICE_FLAG":{"type":"string","description":"The flag indicating whether the price has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange. If the market /exchange does not provide this information, the received timestamp will be returned.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp as reported by the market / exchange. If the market /exchange does not provide this information, the received nanoseconds part of the timestamp will be returned.","x-cc-api-group":"VALUE"},"LAST_TRADE_QUANTITY":{"type":"number","description":"The quantity of the latest trade in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The volume of the latest trade in the to asset / quote.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_ID":{"type":"string","description":"The ID of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_SIDE":{"type":"string","description":"The side of the latest trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_RECEIVED_TS":{"type":"number","description":"The timestamp in seconds for the most recent trade received.","x-cc-api-group":"LAST_PROCESSED"},"LAST_TRADE_RECEIVED_TS_NS":{"type":"number","description":"The nanosecond part of the last trade received timestamp.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_TS":{"type":"number","description":"The timestamp in seconds that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the nanosecond part of the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_RECEIVED_TS":{"type":"number","description":"The timestamp in seconds for the received trade that was processed most recently (not necessarily always a new trade eg in a backfill).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_RECEIVED_TS_NS":{"type":"number","description":"The nanosecond part of the last processed trade received timestamp.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_PRICE":{"type":"number","description":"The price in the quote asset of the last trade processed, as reported by the market / exchange.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUANTITY":{"type":"number","description":"The quantity of the last processed trade in the from symbol (base / coin).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The  volume of the last processed trade in the to asset / quote.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_SIDE":{"type":"string","description":"The side of the last processed trade.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest trade.","x-cc-api-group":"LAST_PROCESSED"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best bid in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best bid in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best bid position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best bid but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best bid position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best ask in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best ask in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best ask position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best ask but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best ask position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"CURRENT_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open price for the current hour, this is based on the closest trade occurring before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest trade price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest trade price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current hour, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open price for the current day, this is based on the closest trade occurring before the start of the current day (00:00:00 GMT/UTC). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest trade price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest trade price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current day, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the current DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_VOLUME":{"type":"number","description":"The sum of all trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The price of the closest trade to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last trade that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest traded price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be the same as CURRENT_WEEK_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest traded price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_LOW. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES":{"type":"number","description":"The total number of trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current week, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the current WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The price of the closest trade to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last trade that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest traded price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest traded price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES":{"type":"number","description":"The total number of trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current month, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the current MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The price of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last trade that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest traded price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest traded price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the start of the current year, multiplied by the USD conversion rate.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the current YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from 24 hours ago up, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (6 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 7 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (29 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest traded price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 30 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (89 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_90_DAY_OPEN and the highest traded price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 90 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The  highest traded price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 180 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest traded price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 365 days, multiplied by the USD conversion rate.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_TRADE_TS":{"type":"number","description":"The timestamp of the first trade ever recorded for the instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"number","description":"The sum of all trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The price of the first trade of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The price of the highest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The price of the lowest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest trade ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES":{"type":"number","description":"The total number of all trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of all buy trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of all sell trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of all unknown trades that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_ASSET_VOLUME_USD":{"type":"number","description":"The sum of all asset quantities from the last 365 days, multiplied by the USD conversion rate.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME_CHANGE. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current LIFETIME_CHANGE. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}}}}},"SPOT_INSTRUMENT_MARKET_DATA_BY_ASSET_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_MARKET_DATA_BY_ASSET"},"Err":{"type":"object","properties":{}}}},"SPOT_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the beginning of the histo period. For minute it would be every minute at the beginning of the minute, for hour it would be the start of the hour and for daily it is 00:00 GMT.","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN":{"type":"number","description":"The open price for the historical period, this is based on the closest trade before the period start.","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest trade price in the time period. If there were no trades in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest trade price in the time period. If there were no trades in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The price of the last trade in this time period. If there were no trades in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"FIRST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first trade in this time perio. This is only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last trade in this time period. This is only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"FIRST_TRADE_PRICE":{"type":"number","description":"The price of the first trade in the time period. This is only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_PRICE":{"type":"number","description":"The highest value of the trades in the time period. This is only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest trade in the time period. This is only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_PRICE":{"type":"number","description":"The lowest value of the trades in the time period. This is only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest trade in the time period. This is only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_PRICE":{"type":"number","description":"The last trade price in the time period. This is only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"TOTAL_TRADES":{"type":"number","description":"The total number of trades seen in this time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_BUY":{"type":"number","description":"The total number of BUY trades seen in this time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_SELL":{"type":"number","description":"The total number of SELL trades seen in this time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of UNKNOWN trades seen in this time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"TRADE"},"VOLUME":{"type":"number","description":"The sum of all the trade volumes in the from asset (base symbol / coin) for the time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The sum of all the trade volumes in the To asset (quote/counter symbol/coin) for the time period. If there were no trades in the time period, 0 will be returned.","x-cc-api-group":"VOLUME"},"VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the to asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"}}},"SPOT_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"SPOT_INSTRUMENT_TRADE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","example":"952","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc.).","example":"coinbase","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","example":"BTC-USD","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This takes the form: \"BASE-QUOTE\" and is available only for instruments that have been mapped (e.g. BTC-USD).","example":"BTC-USD","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","example":"BTC","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","example":"USD","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":1,"x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":5,"x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function applied during mapping to convert values into more human-readable formats and ensure the mapped direction \"BASE-QUOTE\" remains consistent across instruments.","example":"INVERT","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. If the exchange / api does not provide a side, \"UNKNOWN\" will be returned.","example":"SELL","x-cc-api-group":"TRADE"},"ID":{"type":"string","description":"The trade ID as reported by the market / exchange. If not provided by the exchange, it will be the timestamp of the trade plus a number from 0 - 999 to ensure uniqueness, assuming there would never be more than 1000 trades in any given second.","example":"2","x-cc-api-group":"TRADE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","example":1417412423,"x-cc-api-group":"TRADE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp.","example":76000000,"x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when the trade was received. This may differ from the trade timestamp by milliseconds to seconds depending on the market / exchange API options and rate limits.","format":"unix_timestamp","example":1642010854,"x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","example":980000000,"x-cc-api-group":"TRADE"},"QUANTITY":{"type":"number","description":"The volume of the trade, given in the from instrument (base symbol / coin/ contract). For a spot BTC-USD trade, this is how much BTC was traded at the trade price. For a futures BTCUSDPERP, this is the BTC equivalent for the contracts traded.","example":0.01,"x-cc-api-group":"TRADE"},"PRICE":{"type":"number","description":"The price in the to instrument (quote / counter symbol / coin) of the trade. For a BTC-USD trade, this is how much was paid for one BTC in USD. For futures, this will be the price of the contract.","example":300,"x-cc-api-group":"TRADE"},"QUOTE_QUANTITY":{"type":"number","description":"The volume of the trade, given in the to instrument (quote / counter symbol / coin). This is equivalent to QUANTITY * PRICE. E.g. for a BTC-USD trade, this is how much USD was paid in total for the volume of BTC traded. For futures this is the quote currency equivalent for the contracts traded.","example":3,"x-cc-api-group":"TRADE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc.","example":"POLLING","x-cc-api-group":"TRADE"},"CCSEQ":{"type":"number","description":"The internal sequence number for this trade, unique per market / exchange and trading pair. It should always increase by 1 with each new trade discovered, ensuring there are no gaps, though not necessarily in chronological order.","example":1,"x-cc-api-group":"TRADE"},"STATUS":{"type":"string","description":"The status of the trade.","example":"VALID","x-cc-api-group":"STATUS"}}},"SPOT_INSTRUMENT_TRADE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid trades for the requested time period. Trades are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled trades that are added later will appear at the end of the array. This ensures a reliable and sequential view of trades, including historical corrections. If a trades was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid trades to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid trades from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of trades and you can no longer easily guarantee you have received all trades","items":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_TRADE"}},"Err":{"type":"object","properties":{}}}},"SPOT_ORDERBOOK_L2_METRICS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the minute. It would be every minute at the beginning of the minute.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 961 for SPOT_MAPPED_ORDERBOOK_SNAPSHOT_METRICS and 796 for UNMAPPED_ORDERBOOK_SNAPSHOT_METRICS.","example":"961","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc).","example":"coinbase","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"DEPTH_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for the depth of the order book, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"SLIPPAGE_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for slippage, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"MID_PRICE":{"type":"number","description":"Represents the mid-price between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD_PERCENTAGE":{"type":"number","description":"Represents the percentage difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD":{"type":"number","description":"Represents the absolute difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"}},"additionalProperties":{"type":"number","description":"Contains calculated metrics for market depth and slippage limits, tailored for adaptive trading strategies. Depth fields are prefixed with DEPTH_ and quantify the market depth at specified percentages away from the best ask or bid prices, serving as indicators of liquidity and market stability. Slippage fields, prefixed with SLIPPAGE_, outline the average or maximum slippage values for trading, available in both specific price points and raw figures. Note: slippage metrics can return null for high order values if the market depth is insufficient to fill the order.","pattern":"/^(DEPTH_(BEST|MID)_PRICE_(ASK|BID)_([0-9]+(.[0-9]+)?)_PERCENT|SLIPPAGE_((BEST|MID)_PRICE|RAW)_(AVG|MAX)_(ASK|BID)_([0-9]+(.[0-9]+)?))$/"}},"SPOT_ORDERBOOK_L2_METRICS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_METRICS"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"SPOT_ORDERBOOK_L2_SNAPSHOTS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"This field represents the UNIX timestamp, recorded in seconds, that marks the start of each minute. It serves as a precise point-in-time identifier, ensuring that the associated data is accurately timestamped at the very beginning of each minute. This timestamp is crucial for synchronizing and comparing data points across different time series or datasets, facilitating accurate time-based analysis and reporting.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 797 for UNMAPPED_ORDERBOOK_SNAPSHOT_HISTORY and 956 for SPOT_MAPPED_ORDERBOOK_SNAPSHOT_HISTORY.","example":"956"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc).","example":"coinbase"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update."},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped."},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping."},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping."},"TOTAL_AVAILABLE_ASKS":{"type":"number","description":"Represents the total number of Level 2 ask positions available in the order book for a specific spot instrument. This metric provides insight into the depth of the market on the sell side, indicating the number of distinct price levels at which sellers are willing to transact."},"TOTAL_AVAILABLE_BIDS":{"type":"number","description":"Represents the total number of Level 2 bid positions available in the order book for a specific spot instrument. It reflects the market depth on the buy side, showing the number of different price levels at which buyers are placing their bids."},"ASKS":{"type":"array","description":"Details the list of best ask prices in the order book for a specific spot instrument, highlighting the lowest prices at which sellers are willing to sell their holdings, along with the quantity available at each price level.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"The asking price for each unit of the instrument in the quote currency or asset. For a BTC-USD trade, it denotes the USD price per BTC."},"QUANTITY":{"type":"number","description":"Indicates the volume of the instrument available at the specified ask price."},"LAST_UPDATE":{"type":"number","description":"The timestamp of the most recent update to an ask price in the order book, given in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanosecond part of the last update timestamp for more precise timing. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}},"BIDS":{"type":"array","description":"Lists the best bid prices in the order book for a specific spot instrument, showing the highest prices buyers are willing to pay, along with the quantity they are willing to buy at each price level.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"Represents the bid price for the instrument in the quote currency or asset, such as the USD price offered for one unit of BTC in a BTC-USD trade."},"QUANTITY":{"type":"number","description":"Shows the amount of the instrument buyers are looking to purchase at the given bid price."},"LAST_UPDATE":{"type":"number","description":"Timestamp indicating the last time a bid price was updated in the order book, measured in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanoseconds part of the last update timestamp for enhanced precision. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}}}},"SPOT_ORDERBOOK_L2_SNAPSHOTS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_SNAPSHOTS"}},"Err":{"type":"object","properties":{}}}},"SPOT_ORDERBOOK_L2_CONSOLIDATED_METRICS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the minute. It would be every minute at the beginning of the minute.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 1540 for SPOT_MAPPED_ORDERBOOK_CONSOLIDATED_SNAPSHOT_METRICS and 1530 for UNMAPPED_ORDERBOOK_CONSOLIDATED_SNAPSHOT_METRICS.","example":"1540","x-cc-api-group":"ID"},"CONSOLIDATED_ORDER_BOOKS":{"type":"array","description":"Details the list of consolidated markets.","items":{"type":"object","properties":{"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc)"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update."}}},"x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"DEPTH_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for the depth of the order book, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"SLIPPAGE_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for slippage, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"CONSOLIDATED_BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_BEST_BID_MARKET":{"type":"string","description":"The market / exchange with the best bid. (e.g. gemini, kraken, coinbase, etc)","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_BEST_ASK_MARKET":{"type":"string","description":"The market / exchange with the best ask. (e.g. gemini, kraken, coinbase, etc)","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_MID_PRICE":{"type":"number","description":"Represents the mid-price between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_SPREAD_PERCENTAGE":{"type":"number","description":"Represents the percentage difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"CONSOLIDATED_SPREAD":{"type":"number","description":"Represents the absolute difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"}},"additionalProperties":{"type":"number","description":"Contains calculated metrics for market depth and slippage limits, tailored for adaptive trading strategies. Depth fields are prefixed with DEPTH_ and quantify the market depth at specified percentages away from the best ask or bid prices, serving as indicators of liquidity and market stability. Slippage fields, prefixed with SLIPPAGE_, outline the average or maximum slippage values for trading, available in both specific price points and raw figures. Note: slippage metrics can return null for high order values if the market depth is insufficient to fill the order.","pattern":"/^(DEPTH_(BEST|MID)_PRICE_(ASK|BID)_([0-9]+(.[0-9]+)?)_PERCENT|SLIPPAGE_((BEST|MID)_PRICE|RAW)_(AVG|MAX)_(ASK|BID)_([0-9]+(.[0-9]+)?))$/"}},"SPOT_ORDERBOOK_L2_CONSOLIDATED_METRICS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_CONSOLIDATED_METRICS"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"SPOT_ORDERBOOK_L2_CONSOLIDATED_SNAPSHOTS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"This field represents the UNIX timestamp, recorded in seconds, that marks the start of each minute. It serves as a precise point-in-time identifier, ensuring that the associated data is accurately timestamped at the very beginning of each minute. This timestamp is crucial for synchronizing and comparing data points across different time series or datasets, facilitating accurate time-based analysis and reporting.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 1531 for UNMAPPED_ORDERBOOK_CONSOLIDATED_SNAPSHOT_HISTORY and 1541 for SPOT_MAPPED_ORDERBOOK_CONSOLIDATED_SNAPSHOT_HISTORY.","example":"1541"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc).","example":"coinbase"},"CONSOLIDATED_ORDER_BOOKS":{"type":"array","description":"Details the list of consolidated markets.","items":{"type":"object","properties":{"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc)"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update."}}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped."},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping."},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping."},"TOTAL_AVAILABLE_ASKS":{"type":"number","description":"Represents the total number of Level 2 ask positions available in the order book for a specific spot instrument. This metric provides insight into the depth of the market on the sell side, indicating the number of distinct price levels at which sellers are willing to transact."},"TOTAL_AVAILABLE_BIDS":{"type":"number","description":"Represents the total number of Level 2 bid positions available in the order book for a specific spot instrument. It reflects the market depth on the buy side, showing the number of different price levels at which buyers are placing their bids."},"ASKS":{"type":"array","description":"Details the list of best ask prices in the order book for a specific spot instrument, highlighting the lowest prices at which sellers are willing to sell their holdings, along with the quantity available at each price level.","items":{"type":"object","properties":{"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc)"},"PRICE":{"type":"number","description":"The asking price for each unit of the instrument in the quote currency or asset. For a BTC-USD trade, it denotes the USD price per BTC."},"QUANTITY":{"type":"number","description":"Indicates the volume of the instrument available at the specified ask price."},"LAST_UPDATE":{"type":"number","description":"The timestamp of the most recent update to an ask price in the order book, given in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanosecond part of the last update timestamp for more precise timing. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}},"BIDS":{"type":"array","description":"Lists the best bid prices in the order book for a specific spot instrument, showing the highest prices buyers are willing to pay, along with the quantity they are willing to buy at each price level.","items":{"type":"object","properties":{"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc)"},"PRICE":{"type":"number","description":"Represents the bid price for the instrument in the quote currency or asset, such as the USD price offered for one unit of BTC in a BTC-USD trade."},"QUANTITY":{"type":"number","description":"Shows the amount of the instrument buyers are looking to purchase at the given bid price."},"LAST_UPDATE":{"type":"number","description":"Timestamp indicating the last time a bid price was updated in the order book, measured in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanoseconds part of the last update timestamp for enhanced precision. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}}}},"SPOT_ORDERBOOK_L2_CONSOLIDATED_SNAPSHOTS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/SPOT_ORDERBOOK_L2_CONSOLIDATED_SNAPSHOTS"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"SPOT_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"INSTRUMENT_EXTERNAL_DATA":{"type":"string","description":"The full data we get from the polling endpoint for this specific instrument. This is a JSON stringified object with different properties per exchange.","x-cc-api-group":"GENERAL"},"INSTRUMENT_AVAILABLE_ON_INSTRUMENTS_ENDPOINT":{"type":"boolean","description":"This flags the exchange instrument is currently available on instruments endpoint.","default":true,"example":true,"x-cc-api-group":"GENERAL"},"PROCESSING_TRADES_FROM_BLOB_STATUS":{"type":"string","description":"This states the status of blob migration for this instrument on this exchange.","x-cc-api-group":"INTERNAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"ORDERBOOK_MAX_DEPTH":{"type":"number","description":"The maximum number of positions to keep in the orderbook, for each side.","x-cc-api-group":"GENERAL"},"FIRST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the initial Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"LAST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the latest Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"INSTRUMENT_TRADE_SPOT_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for TRADE_SPOT.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume TRADE_SPOT via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_TRADES_SPOT":{"type":"number","description":"This is both the CCSEQ and the total TRADES_SPOT we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_TRADES_SPOT_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from TRADES_SPOT all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_TRADE_SPOT_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_POLLING":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_POLLING":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_STREAMING":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_STREAMING":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_GO":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_GO":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_BLOB":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_BLOB":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_FIX":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_FIX":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_SPOT_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_EOD":{"type":"object","description":"This is the first TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_EOD":{"type":"object","description":"This is the last TRADE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first TRADE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last TRADE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_SPOT_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OB_L2_SNAPSHOT_SPOT.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OB_L2_SNAPSHOT_SPOT via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OB_L2_SNAPSHOTS_SPOT":{"type":"number","description":"This is both the CCSEQ and the total OB_L2_SNAPSHOTS_SPOT we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OB_L2_SNAPSHOTS_SPOT_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OB_L2_SNAPSHOTS_SPOT all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_POLLING":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_POLLING":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_GO":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_GO":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_BLOB":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_BLOB":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_FIX":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_FIX":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_SNAPSHOT_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_SNAPSHOT_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_SNAPSHOT_SPOT_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_SNAPSHOT_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_EOD":{"type":"object","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_EOD":{"type":"object","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_SNAPSHOT_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OB_L2_SNAPSHOT_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_SNAPSHOT_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OB_L2_SNAPSHOT_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_SNAPSHOT_SPOT_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_SNAPSHOT_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OB_L2_UPDATE_SPOT.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OB_L2_UPDATE_SPOT via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OB_L2_UPDATES_SPOT":{"type":"number","description":"This is both the CCSEQ and the total OB_L2_UPDATES_SPOT we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OB_L2_UPDATES_SPOT_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OB_L2_UPDATES_SPOT all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_POLLING":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_POLLING":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_STREAMING":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_STREAMING":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_GO":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_GO":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_BLOB":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_BLOB":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_CALCULATED":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_BACKFILL":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_FIX":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_FIX":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_SPOT for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_SPOT on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_SPOT_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_SPOT for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_EOD":{"type":"object","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_EOD":{"type":"object","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_SPOT that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_SPOT_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_SPOT that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_SPOT_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_SPOT data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_POLLING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_STREAMING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_GO":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BLOB":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_CALCULATED":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BACKFILL":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_FIX":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_EOD":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"FIRST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"}}},"SPOT_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_METADATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"SPOT_EXCHANGE_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_SPOT":{"type":"integer","description":"The total number of spot trades that this exchange has processed.","example":852577,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED":{"type":"boolean","description":"Boolean field denoting if we have historical minute orderbook snapshots enabled for this exchange.","example":true,"x-cc-api-group":"BASIC"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"SPOT_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for spot trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the event"}}},"x-cc-api-group":"BASIC"},"SPOT_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Spot API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, enabling controlled API access and simplified role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_SPOT"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"SPOT_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the spot integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"SPOT_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"CCDATA_LATEST_SPOT_BENCHMARK_SCORE":{"type":"number","description":"This is a measure of the total number of benchmark score out of 100. It is the sum of all the individual section score in the latest benchmark report.","x-cc-api-group":"BENCHMARK"},"CCDATA_LATEST_SPOT_BENCHMARK_GRADE":{"type":"string","description":"This is a measure of the grade the exchange has based on the benchmark score. We classify anything over B to be a top tier exchange.","x-cc-api-group":"BENCHMARK"},"CCDATA_HISTORICAL_SPOT_BENCHMARK_REPORTS":{"type":"array","description":"An array holding the series of benchmark reports data for the exchange. Each element in the array corresponds to a set of data from a specific report, collectively providing a comprehensive historical record of the exchange's performance metrics over time.","items":{"type":"object","properties":{"PUBLICATION_DATE":{"type":"integer","description":"Indicates the date each report was published, serving as a historical marker for the data and allowing for chronological analysis of the exchange's performance."},"OVERALL_SCORE":{"type":"number","description":"Represents the overall score assigned in each benchmark report, encapsulating various performance metrics to reflect the exchange's effectiveness and reliability at each historical point."},"OVERALL_GRADE":{"type":"string","description":"Denotes the grade given in each report, categorizing the exchange's performance into a specific tier, enabling a comparative assessment over time"}}},"x-cc-api-group":"BENCHMARK"}}},"SPOT_EXCHANGE_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SPOT_EXCHANGE_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"SPOT_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_SPOT":{"type":"integer","description":"The total number of spot trades that this exchange has processed.","example":852577,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED":{"type":"boolean","description":"Boolean field denoting if we have historical minute orderbook snapshots enabled for this exchange.","example":true,"x-cc-api-group":"BASIC"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"SPOT_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for spot trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the event"}}},"x-cc-api-group":"BASIC"},"SPOT_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Spot API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, enabling controlled API access and simplified role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_SPOT"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"SPOT_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the spot integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"SPOT_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_SPOT"},"SPOT_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"HAS_SPOT_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_SPOT"},"CCDATA_LATEST_SPOT_BENCHMARK_SCORE":{"type":"number","description":"This is a measure of the total number of benchmark score out of 100. It is the sum of all the individual section score in the latest benchmark report.","x-cc-api-group":"BENCHMARK"},"CCDATA_LATEST_SPOT_BENCHMARK_GRADE":{"type":"string","description":"This is a measure of the grade the exchange has based on the benchmark score. We classify anything over B to be a top tier exchange.","x-cc-api-group":"BENCHMARK"},"CCDATA_HISTORICAL_SPOT_BENCHMARK_REPORTS":{"type":"array","description":"An array holding the series of benchmark reports data for the exchange. Each element in the array corresponds to a set of data from a specific report, collectively providing a comprehensive historical record of the exchange's performance metrics over time.","items":{"type":"object","properties":{"PUBLICATION_DATE":{"type":"integer","description":"Indicates the date each report was published, serving as a historical marker for the data and allowing for chronological analysis of the exchange's performance."},"OVERALL_SCORE":{"type":"number","description":"Represents the overall score assigned in each benchmark report, encapsulating various performance metrics to reflect the exchange's effectiveness and reliability at each historical point."},"OVERALL_GRADE":{"type":"string","description":"Denotes the grade given in each report, categorizing the exchange's performance into a specific tier, enabling a comparative assessment over time"}}},"x-cc-api-group":"BENCHMARK"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"BASE":{"type":"string","description":"The current mapped base asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"BTC"},"QUOTE":{"type":"string","description":"The current mapped quote asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"USD"},"BASE_ID":{"type":"string","description":"Represents the internal ID for the base asset (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":"BTC"},"QUOTE_ID":{"type":"string","description":"Represents the internal CCData ID for the quote asset (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":"USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"HAS_TRADES_SPOT":{"type":"boolean","description":"A boolean flag indicating whether the instrument has spot trades or not. ","example":true},"FIRST_TRADE_SPOT_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed spot trade for this instrument. This timestamp represents the earliest trade we have recorded in our system. Note that updates to this value are rare, but it may take up to 1 hour for changes to reflect on the API if we backfill trades or messages earlier than the previously known first timestamp.","example":1677283205,"format":"unix_timestamp"},"LAST_TRADE_SPOT_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last spot trade observed for this instrument. This timestamp represents when the most recent spot trade was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the spot trades by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"TOTAL_TRADES_SPOT":{"type":"number","description":"The total number of spot trades processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":852577},"HAS_OB_L2_SNAPSHOTS_SPOT":{"type":"boolean","description":"A boolean flag indicating whether the instrument has spot order book l2 snapshots or not.","example":true},"FIRST_OB_L2_SNAPSHOT_SPOT_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed order book l2 spot snapshot for this instrument. This timestamp represents the earliest order book update we have recorded in our system. Note that updates to this value are rare, but it may take up to 1 hour for changes to reflect on the API if we backfill order book updates or messages earlier than the previously known first timestamp.","example":1677283205,"format":"unix_timestamp"}}}}}}},"SPOT_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SPOT_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"FUTURES_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset / quote / counter symbol / coin (e.g. USD) Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The mapped currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"PRICE":{"type":"number","description":"The price in the to asset / quote / counter symbol / coin) of the trade.","x-cc-api-group":"VALUE"},"PRICE_FLAG":{"type":"string","description":"The flag indicating if the price has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange or the received timestamp if the market / exchange does not provide one of the last trade that had an impact on the price.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp as reported by the market / exchange or the nanoseconds part of the received timestamp if the market / exchange does not provide one of the last trade that had an impact on the price.","x-cc-api-group":"VALUE"},"LAST_TRADE_NUMBER_OF_CONTRACTS":{"type":"number","description":"The number of contracts of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUANTITY":{"type":"number","description":"The quantity of the last trade in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The total volume in the to asset / quote of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_ID":{"type":"string","description":"The ID of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_SIDE":{"type":"string","description":"The side of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_PROCESSED_TRADE_TS":{"type":"number","description":"The timestamp in seconds that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp that the last trade was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the nanosecond part of the timestamp that the trade was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_PRICE":{"type":"number","description":"The price in the quote asset of the last trade processed, as reported by the market / exchange.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUANTITY":{"type":"number","description":"The quantity of the last processed trade in the from symbol (base / coin).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The  volume of the last processed trade in the to asset / quote.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_SIDE":{"type":"string","description":"The side of the last processed trade.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the latest trade.","x-cc-api-group":"LAST_PROCESSED"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / counter symbol / coin). Here, the bid price represents the highest price a buyer is willing to pay for some amount of a given asset. This value is scaled to represent a single unit of that asset. E.g. for a BTC-USD order book, the price would be quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). E.g., for a BTC-USD order book, this value would represent how much BTC a buyer would be willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_NUMBER_OF_CONTRACTS":{"type":"number","description":"Represents the number of contracts available at the highest bid price, indicating the depth of buy orders at the best bid level.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best bid in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best bid in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best bid position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best bid but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best bid position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / counter symbol / coin). Here, the ask price represents the lowest price a seller is willing to sell for some amount of a given asset. This value is scaled to represent a single unit of that asset. E.g. for a BTC-USD order book, the price would be quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). E.g., for a BTC-USD order book, this value would represent how much BTC a seller is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_NUMBER_OF_CONTRACTS":{"type":"number","description":"Represents the number of contracts available at the lowest ask price, indicating the depth of sell orders at the best ask level.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best ask in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best ask in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best ask position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best ask but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best ask position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"CURRENT_HOUR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the start of the current hour until now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open price for the current hour, this is based on the closest trade before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) in the current hour. If there were no trades in the period, the open value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) in the current hour. If there were no trades in the period, the open value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the CURRENT_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current CURRENT_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the start of the current day (00:00:00 GMT/UTC) until now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open price for the current day, this is based on the closest trade before the start of the current day (00:00:00 GMT/UTC to now). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) in the current day (00:00:00 GMT/UTC to now). If there were no trades in the period, the open will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) in the current day. (00:00:00 GMT/UTC to now). If there were no trades in the period, the open will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME":{"type":"number","description":"The sum of all trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The price of the closest trade to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last trade that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) of the week, excluding the current day. So, the period here is Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) of the week, excluding the current day. So, the period here is Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES":{"type":"number","description":"The total number of trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The price of the closest trade to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last trade that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Represented in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest traded price (given in the quote currency) of the month, excluding the current day. So, here the period runs from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest traded price (given in the quote currency) of the month, excluding the current day. So, here the period runs from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The price of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. This would be, in a highly liquid market, the last trade that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest traded price (given in the quote currency) of the year, excluding the current day. So here, the period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest traded price (given in the quote currency) of the year, excluding the current day. So here, the period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (6 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (29 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (89 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_TRADE_TS":{"type":"number","description":"The timestamp of the first trade ever recorded for this instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts of all the trades of this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"number","description":"The sum of all trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The price of the first trade of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The price of the highest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The price of the lowest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES":{"type":"number","description":"The total count of all trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_BUY":{"type":"number","description":"The total count of all buy trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_SELL":{"type":"number","description":"The total count of all sell trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total count of all unknown trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"FUTURES_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"FUTURES_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC).","format":"unix_timestamp"},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping. ","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the  contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN":{"type":"number","description":"The open price for the historical period, based on the closest trade before the period start","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest trade price of the historical period. If there were no trades in the period, the open price will be taken as the highest.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest trade price of the historical period. If there were no trades in the period, the open price will be taken as the lowest.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The price of the last trade of the historical period. If there were no trades in the period, the open price will be taken as the close.","x-cc-api-group":"OHLC"},"FIRST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first trade of the time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last trade of the time period. Only available when there is at least one trade in the time period).","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"FIRST_TRADE_PRICE":{"type":"number","description":"The price of the first trade of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_PRICE":{"type":"number","description":"The highest trade price of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest trade in this time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_PRICE":{"type":"number","description":"The lowest trade price of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest trade of the time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_PRICE":{"type":"number","description":"The price of the last trade of the period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all the trade number of contracts for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"TOTAL_TRADES":{"type":"number","description":"The total number of trades that occurred in the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_BUY":{"type":"number","description":"The total number of BUY trades that occurred in the in time period.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_SELL":{"type":"number","description":"The total number of SELL trades that occurred in the time period.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of UNKNOWN trades that occurred in the time period.","x-cc-api-group":"TRADE"},"VOLUME":{"type":"number","description":"The sum of all the trade volumes in the from asset (base symbol / coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The sum of all the trade volumes in the To asset (quote/counter symbol/coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"}}},"FUTURES_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"FUTURES_INSTRUMENT_TRADE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. deribit, bitmex, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function applied during mapping to convert values into more human-readable formats and ensure the mapped direction \"BASE-QUOTE\" remains consistent across instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. UNKNOWN is given only when the underlying market / exchange API does not provide a side.","x-cc-api-group":"TRADE"},"ID":{"type":"string","description":"The trade ID as reported by the market / exchange. If not provided by the exchange, it will be the timestamp of the trade plus a number from 0 - 999 to ensure uniqueness, assuming there would never be more than 1000 trades in any given second.","x-cc-api-group":"TRADE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when the trade was received. This may differ from the trade timestamp by milliseconds to seconds depending on the market / exchange API options and rate limits.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"TRADE"},"LIQUIDATION":{"type":"string","description":"Liquidation information for a trade: NO,YES,UNKNOWN","x-cc-api-group":"TRADE"},"NUMBER_OF_CONTRACTS":{"type":"number","description":"The total number of contracts traded.","x-cc-api-group":"TRADE"},"QUANTITY":{"type":"number","description":"The volume of this trade, given in units of the from currency (base symbol / coin / contract / index). This is the underlying currency equivalent for the contracts traded. EG for BTCUSDPERP it is BTC.","x-cc-api-group":"TRADE"},"PRICE":{"type":"number","description":"The price of the trade, given in units of the to instrument (quote / counter symbol / coin / index).","x-cc-api-group":"TRADE"},"QUOTE_QUANTITY":{"type":"number","description":"The total volume in the to instrument (quote / counter symbol / coin  / index) of the trade. This is equal to QUANTITY * PRICE.","x-cc-api-group":"TRADE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc.","x-cc-api-group":"TRADE"},"CCSEQ":{"type":"number","description":"The internal sequence number for this trade, unique per market / exchange and trading pair. It should always increase by 1 with each new trade discovered, ensuring there are no gaps, though not necessarily in chronological order.","x-cc-api-group":"TRADE"},"STATUS":{"type":"string","description":"The status of the trade.","example":"VALID","x-cc-api-group":"STATUS"}}},"FUTURES_INSTRUMENT_TRADE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid trades for the requested time period. Trades are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled trades that are added later will appear at the end of the array. This ensures a reliable and sequential view of trades, including historical corrections. If a trades was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid trades to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid trades from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of trades and you can no longer easily guarantee you have received all trades","items":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_TRADE"}},"Err":{"type":"object","properties":{}}}},"FUTURES_INSTRUMENT_TRADE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. deribit, bitmex, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function applied during mapping to convert values into more human-readable formats and ensure the mapped direction \"BASE-QUOTE\" remains consistent across instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. UNKNOWN is given only when the underlying market / exchange API does not provide a side.","x-cc-api-group":"TRADE"},"ID":{"type":"string","description":"The trade ID as reported by the market / exchange. If not provided by the exchange, it will be the timestamp of the trade plus a number from 0 - 999 to ensure uniqueness, assuming there would never be more than 1000 trades in any given second.","x-cc-api-group":"TRADE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when the trade was received. This may differ from the trade timestamp by milliseconds to seconds depending on the market / exchange API options and rate limits.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"TRADE"},"LIQUIDATION":{"type":"string","description":"Liquidation information for a trade: NO,YES,UNKNOWN","x-cc-api-group":"TRADE"},"NUMBER_OF_CONTRACTS":{"type":"number","description":"The total number of contracts traded.","x-cc-api-group":"TRADE"},"QUANTITY":{"type":"number","description":"The volume of this trade, given in units of the from currency (base symbol / coin / contract / index). This is the underlying currency equivalent for the contracts traded. EG for BTCUSDPERP it is BTC.","x-cc-api-group":"TRADE"},"PRICE":{"type":"number","description":"The price of the trade, given in units of the to instrument (quote / counter symbol / coin / index).","x-cc-api-group":"TRADE"},"QUOTE_QUANTITY":{"type":"number","description":"The total volume in the to instrument (quote / counter symbol / coin  / index) of the trade. This is equal to QUANTITY * PRICE.","x-cc-api-group":"TRADE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc.","x-cc-api-group":"TRADE"},"CCSEQ":{"type":"number","description":"The internal sequence number for this trade, unique per market / exchange and trading pair. It should always increase by 1 with each new trade discovered, ensuring there are no gaps, though not necessarily in chronological order.","x-cc-api-group":"TRADE"},"STATUS":{"type":"string","description":"The status of the trade.","example":"VALID","x-cc-api-group":"STATUS"}}},"FUTURES_INSTRUMENT_TRADE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid trades for the requested time period. Trades are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled trades that are added later will appear at the end of the array. This ensures a reliable and sequential view of trade data, including historical corrections. If a trade was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid trades in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_TRADE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"FUTURES_ORDERBOOK_L2_METRICS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the minute. It would be every minute at the beginning of the minute.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 916 for FUTURES_MAPPED_ORDERBOOK_SNAPSHOT_METRICS and 285 for FUTURES_UNMAPPED_ORDERBOOK_SNAPSHOT_METRICS.","example":"916","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. binance, deribit, kraken, etc).","example":"coinbase","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The INDEX_UNDERLYING field represents the underlying index for the financial instrument, particularly relevant in derivatives markets. This is the index that a derivative's price is based upon. It is crucial for instruments like index futures or options, providing a benchmark that influences the pricing and settlement of these contracts.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The QUOTE_CURRENCY field specifies the currency in which the price of the instrument is quoted. For a trading pair, this is the second currency in the pair (e.g., USD in BTC-USD). It is a key component in determining the value of trades and positions, reflecting the currency in which profits, losses, and trading volumes are denominated.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The SETTLEMENT_CURRENCY field indicates the currency in which the contract is settled. Unlike the quote currency, the settlement currency is used for the final settlement of the contract, particularly relevant in futures or options markets. This field helps market participants understand in which currency the contract's value will be delivered or received upon settlement.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The CONTRACT_CURRENCY field denotes the currency in which the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for the contract's pricing and settlement. Understanding the contract currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"The DENOMINATION_TYPE field defines the classification of a financial instrument's denomination, directly impacting its trading dynamics and valuation. It categorizes the instrument into one of three types: 'VANILLA', 'INVERSE', or 'QUANTO'. Each category denotes a specific underlying structure that dictates how the instrument responds to market variables, influencing its risk profile and investment appeal. Understanding the denomination type is crucial for investors and traders to make informed decisions and accurately assess the instrument's behavior in various market conditions.","x-cc-api-group":"MAPPING"},"DEPTH_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for the depth of the order book, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"SLIPPAGE_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for slippage, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"MID_PRICE":{"type":"number","description":"Represents the mid-price between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD_PERCENTAGE":{"type":"number","description":"Represents the percentage difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD":{"type":"number","description":"Represents the absolute difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"}},"additionalProperties":{"type":"number","description":"Contains calculated metrics for market depth and slippage limits, tailored for adaptive trading strategies. Depth fields are prefixed with DEPTH_ and quantify the market depth at specified percentages away from the best ask or bid prices, serving as indicators of liquidity and market stability. Slippage fields, prefixed with SLIPPAGE_, outline the average or maximum slippage values for trading, available in both specific price points and raw figures. Note: slippage metrics can return null for high order values if the market depth is insufficient to fill the order.","pattern":"/^(DEPTH_(BEST|MID)_PRICE_(ASK|BID)_([0-9]+(.[0-9]+)?)_PERCENT|SLIPPAGE_((BEST|MID)_PRICE|RAW)_(AVG|MAX)_(ASK|BID)_([0-9]+(.[0-9]+)?))$/"}},"FUTURES_ORDERBOOK_L2_METRICS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FUTURES_ORDERBOOK_L2_METRICS"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"FUTURES_ORDERBOOK_L2_SNAPSHOTS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"This field represents the UNIX timestamp, recorded in seconds, that marks the start of each minute. It serves as a precise point-in-time identifier, ensuring that the associated data is accurately timestamped at the very beginning of each minute. This timestamp is crucial for synchronizing and comparing data points across different time series or datasets, facilitating accurate time-based analysis and reporting.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 297 for FUTURES_UNMAPPED_ORDERBOOK_SNAPSHOT_HISTORY and 920 for FUTURES_MAPPED_ORDERBOOK_SNAPSHOT_HISTORY.","example":"920"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. binance, deribit, kraken, etc).","example":"coinbase"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update."},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules."},"INDEX_UNDERLYING":{"type":"string","description":"The INDEX_UNDERLYING field represents the underlying index for the financial instrument, particularly relevant in derivatives markets. This is the index that a derivative's price is based upon. It is crucial for instruments like index futures or options, providing a benchmark that influences the pricing and settlement of these contracts."},"QUOTE_CURRENCY":{"type":"string","description":"The QUOTE_CURRENCY field specifies the currency in which the price of the instrument is quoted. For a trading pair, this is the second currency in the pair (e.g., USD in BTC-USD). It is a key component in determining the value of trades and positions, reflecting the currency in which profits, losses, and trading volumes are denominated."},"SETTLEMENT_CURRENCY":{"type":"string","description":"The SETTLEMENT_CURRENCY field indicates the currency in which the contract is settled. Unlike the quote currency, the settlement currency is used for the final settlement of the contract, particularly relevant in futures or options markets. This field helps market participants understand in which currency the contract's value will be delivered or received upon settlement."},"CONTRACT_CURRENCY":{"type":"string","description":"The CONTRACT_CURRENCY field denotes the currency in which the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for the contract's pricing and settlement. Understanding the contract currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options."},"DENOMINATION_TYPE":{"type":"string","description":"The DENOMINATION_TYPE field defines the classification of a financial instrument's denomination, directly impacting its trading dynamics and valuation. It categorizes the instrument into one of three types: 'VANILLA', 'INVERSE', or 'QUANTO'. Each category denotes a specific underlying structure that dictates how the instrument responds to market variables, influencing its risk profile and investment appeal. Understanding the denomination type is crucial for investors and traders to make informed decisions and accurately assess the instrument's behavior in various market conditions."},"TOTAL_AVAILABLE_ASKS":{"type":"number","description":"Represents the total number of available l2 asks the order book for a specific instrument."},"TOTAL_AVAILABLE_BIDS":{"type":"number","description":"Represents the total number of available l2 bids in the order book for a specific instrument."},"CONTRACT_SIZE":{"type":"number","description":"The CONTRACT_SIZE field represents the quantity of the underlying asset covered by a single contract. In the context of financial derivatives, this size determines the total value of the contract based on the current market price of the underlying asset. For example, in commodity futures, it might denote the number of barrels of oil or bushels of wheat. In the case of financial instruments like options or futures, it indicates the amount of the asset that the contract pertains to, essential for calculating exposure, margin requirements, and potential profit or loss from trading activities. The field is numerical, reflecting the scale or quantity that one contract represents in the market."},"ASKS":{"type":"array","description":"Represents the list of best ask prices in the order book for a specific futures instrument. It provides insights into the prices at which sellers are willing to sell the futures contracts.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"The price at which one unit of the futures contract can be bought. This is denoted in the quote currency or asset. For a BTC-USD futures contract, this is the USD amount required to purchase one contract of BTC."},"NUMBER_OF_CONTRACTS":{"type":"number","description":"Represents the total number of futures contracts available at the corresponding ask price. It indicates the volume of contracts sellers are willing to sell at that price level."},"QUANTITY":{"type":"number","description":"The total quantity of the underlying asset represented by the futures contracts at the ask price. For a BTCUSD futures contract, it denotes the cumulative BTC quantity represented by the available contracts."},"QUOTE_QUANTITY":{"type":"number","description":"This indicates the total value in the quote currency that the available contracts at the ask price represent. For a BTC-USD futures contract, it's the total USD value of the BTC quantity available at the ask price."},"LAST_UPDATE":{"type":"number","description":"Timestamp indicating the last update to the ask price in the order book, measured in seconds.If the market / exchange does not provide this information, the received seconds part of the timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanoseconds part of the last update timestamp, offering more precise timing information. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}},"BIDS":{"type":"array","description":"Represents the list of best bid prices in the order book for a specific futures instrument. It offers insights into the prices at which buyers are willing to purchase the futures contracts.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"The price at which one unit of the futures contract can be sold. It is expressed in the quote currency or asset. For a BTC-USD futures contract, this is the amount in USD one receives for selling one BTC contract."},"NUMBER_OF_CONTRACTS":{"type":"number","description":"Denotes the total number of futures contracts buyers are willing to purchase at the bid price. It reflects the demand for contracts at that price level."},"QUANTITY":{"type":"number","description":"The aggregate quantity of the underlying asset that the futures contracts at the bid price represent. For a BTCUSD futures contract, this is the total BTC amount represented by the contracts."},"QUOTE_QUANTITY":{"type":"number","description":"Shows the total quote currency value of the underlying asset quantity at the bid price. For a BTC-USD futures contract, it's the total USD value for the BTC quantity represented by the bid contracts."},"LAST_UPDATE":{"type":"number","description":"The timestamp of the last update to the bid price in the order book, in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"The nanoseconds component of the last update timestamp, providing finer granularity in timing. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."}}}}}},"FUTURES_ORDERBOOK_L2_SNAPSHOTS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FUTURES_ORDERBOOK_L2_SNAPSHOTS"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always increase by 1 for each new tick update.","x-cc-api-group":"VALUE"},"VALUE_SETTLEMENT":{"type":"number","description":"The value of the latest settlement.","x-cc-api-group":"VALUE"},"VALUE_SETTLEMENT_FLAG":{"type":"string","description":"The flag indicating if the settlement value has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"VALUE_MARK_PRICE":{"type":"number","description":"The value of the latest mark price.","x-cc-api-group":"VALUE"},"VALUE_MARK_PRICE_FLAG":{"type":"string","description":"The flag indicating whether the mark price has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"VALUE_QUOTE":{"type":"number","description":"The latest settlement value, in units of the quote currency.","x-cc-api-group":"VALUE"},"VALUE_QUOTE_FLAG":{"type":"string","description":"The flag indicating whether the quote value has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide a timestamp, the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide a timestamp, the nanosecond part of the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the last message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the last message update.","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN_MARK_PRICE":{"type":"number","description":"The open mark price value for the current hour, this is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN_QUOTE":{"type":"number","description":"The open settlement value, in units of the quote currency, for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price value of the current hour. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current hour that the mark price is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, in units of the quote currency, of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value (in units of the quote currency) is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price value of the current hour. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current hour that the mark price is lowest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, in units of the quote currency, of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value (in units of the quote currency) is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The open mark price value for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN_QUOTE":{"type":"number","description":"The open settlement value, in units of the quote currency, for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current day. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current day that the mark price is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, in units of the quote currency, of the current day. If there have been no updates in the time period, the open quote settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value (in units of the quote currency) is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current day. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current day that the mark price is lowest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, in units of the quote currency, of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value (in units of the quote currency) is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current day. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current day. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the current day. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current day. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current day. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current day. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN_QUOTE":{"type":"number","description":"The value of the settlement update, in units of the quote currency, closest to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current week (excluding the current day) that the mark price is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT will be given. The weekly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher mark price.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, CURRENT_WEEK_OPEN_QUOTE will be given. The weekly value will wither be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current week (excluding the current day) that the mark price is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT will be given. The weekly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, CURRENT_WEEK_OPEN_QUOTE will be given. The weekly value will wither be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. To get the total weekly value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current week. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current week. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_CHANGE":{"type":"number","description":"The value change from the current week. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current week. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current week. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current week. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN_QUOTE":{"type":"number","description":"The settlement value, in units of the quote currency, of the closest update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current month (excluding the current day) that the mark price is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT will be given. The monthly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher associated mark price.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_QUOTE will be given. The monthly value will either be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current month (excluding the current day) that the mark price is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT will be given. The monthly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st day of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_QUOTE value will be given. The monthly value will either be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0. To get the total monthly value, add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current month. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current month. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_CHANGE":{"type":"number","description":"The value change from the current month. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current month. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current month. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current month. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN_QUOTE":{"type":"number","description":"The settlement value, in units of the quote currency, of the closest update to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value is highest. I.e. for the period running from the 1st January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current year (excluding the current day) that the mark price is highest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT will be given. The yearly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher associated mark price.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current year, excluding the current day. I.e. for the period running from the 1st January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_QUOTE will be given. The yearly value will either be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"he settlement value, at the point in the current year (excluding the current day) that the mark price is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT will be given. The yearly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st day of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_QUOTE value will be given. The yearly value will either be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0. To get the total yearly value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current year. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current year. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_CHANGE":{"type":"number","description":"The value change from the current year. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current year. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current year. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current year. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN_QUOTE":{"type":"number","description":"The value of the closest quote update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total) The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 24 hours ago to the beginning of the current day (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total) The 24 hour value will either be this, or the CURRENT_HOUR_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 24 hours ago to the beginning of the current day (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total). To get the total 24 hour value add CURRENT_HOUR_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 7 days ago up to the beginning of the current hour (6 days in total) The 7 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 7 days ago to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total) The 7 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 7 days ago to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total). To get the total 7 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total) The 30 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 30 days ago to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total) The 30 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 30 days ago to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total). To get the total 30 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total) The 90 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 90 days ago to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total) The 90 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 90 days ago to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total). To get the total 90 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total) The 180 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 180 days ago to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total) The 180 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 180 days ago to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total). To get the total 180 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total) The 365 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 365 days ago to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total) The 365 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 365 days ago to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of updates between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total). To get the total 365 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_UPDATES to this value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_SETTLEMENT":{"type":"number","description":"The value of the first settlement update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_MARK_PRICE":{"type":"number","description":"The value of the first mark price update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_QUOTE":{"type":"number","description":"The value of the first settlement update of the instrument, in the quote currency.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT":{"type":"number","description":"The value of the highest recorded settlement update for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the highest settlement value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT_TS":{"type":"number","description":"The timestamp of the highest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE":{"type":"number","description":"The value of the highest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in time that the highest mark price value recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE_TS":{"type":"number","description":"The timestamp of the highest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE":{"type":"number","description":"The value of the highest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the highest settlement (in the quote currency) value occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE_TS":{"type":"number","description":"The timestamp of the highest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT":{"type":"number","description":"The value of the lowest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the lowest settlement value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT_TS":{"type":"number","description":"The timestamp of the lowest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE":{"type":"number","description":"The value of the lowest mark price update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in time that the lowest mark price value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE_TS":{"type":"number","description":"The timestamp of the lowest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE":{"type":"number","description":"The value of the lowest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the lowest settlement update (in the quote currency) ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE_TS":{"type":"number","description":"The timestamp of the lowest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of all updates that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"},"LIFETIME_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"OPEN_INTEREST_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"OPEN_INTEREST_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC).","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the historical period, given in units of the underlying asset. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"OPEN_MARK_PRICE":{"type":"number","description":"The mark price coresponding to the open settlement value for the historical period, given in units of the quote currency. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"OPEN_QUOTE":{"type":"number","description":"The open settlement for the historical period, given in units of the quote currency. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"HIGH_SETTLEMENT":{"type":"number","description":"The highest value the settlement reached during the historical period. If there were no messages in the time period, the open settlement value will be taken as the highest.","x-cc-api-group":"OHLC"},"HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, given in units of the quote currency, at the point in time where the open interest settlement value is highest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"HIGH_MARK_PRICE":{"type":"number","description":"The highest value the mark price reached during the historical period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, given in units of the underlying currency, at the point in time where the mark price is highest. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"HIGH_QUOTE":{"type":"number","description":"The highest value, in units of the quote currency, the open interest settlement reached during the time period. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, given in units of the quote currency, at the point in time where the open interest settlement value (in units of the quote currency) is highest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_SETTLEMENT":{"type":"number","description":"The lowest value the settlement reached during the historical period. If there were no messages in the time period, the open settlement value will be taken as the lowest.","x-cc-api-group":"OHLC"},"LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the open interest settlement value (in units of the underlying currency) is lowest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_MARK_PRICE":{"type":"number","description":"The lowest value the mark price reached during the historical period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, given in units of the underlying currency, at the point in time where the mark price is lowest. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"LOW_QUOTE":{"type":"number","description":"The lowest value, in units of the quote currency, that the open interest settlement reached during the time period. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the open interest settlement value (in units of the quote currency) is lowest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"CLOSE_SETTLEMENT":{"type":"number","description":"The value of the last open interest settlement update in this time period. If there were no messages in the time period, the open settlement value will be given.","x-cc-api-group":"OHLC"},"CLOSE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the last open interest update value in this time period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"CLOSE_QUOTE":{"type":"number","description":"The open interest value of the last message of the period, given in units of the quote currency. If there were no messages in the time period, the open quote settlement value will be given.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the first open interest update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_SETTLEMENT":{"type":"number","description":"The open interest value of the first open interest settlement update in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the first open interest update in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_QUOTE":{"type":"number","description":"The open interest value, given in units of the quote currency, of the first open interest update of the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT":{"type":"number","description":"The highest open interest settlement value of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the update with the highest settlement value occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest settlement value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE":{"type":"number","description":"The highest mark price value of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement, at the point in time where the update with the highest mark price occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest mark price value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE":{"type":"number","description":"The highest settlement value, given in units of the quote currency, of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the highest open interest settlement value (in units of the quote currency) of the messages in the time period occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest quote value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the messages in the time period. Only available when there is at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the lowest open interest value of the messagse in the time period occurred. Only available when there is at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest settlement update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE":{"type":"number","description":"The lowest mark price value of the messages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, at the point in time where the lowest mark price of the messages in the time period occurred. Only available when we have at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest mark price update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE":{"type":"number","description":"The lowest open interest value, in the quote currency, of the messages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the lowest open interest value (in the quote currency) of the messages in the time period occurred. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest value, given in the quote currency, in the time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last open interest update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_SETTLEMENT":{"type":"number","description":"The last open interest update settlement value in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the last open interest update value in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_QUOTE":{"type":"number","description":"The last open interest value, in the quote currency, of the messsages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of message updates seen in this time period. This value will be 0 when there no messages in the time period.","x-cc-api-group":"MESSAGE"}}},"OPEN_INTEREST_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The open interest ID as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the open interest dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the open interest value was received. This varies (from a few millisconds to a few seconds) from the open interest value taking place on the market / exchange depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SETTLEMENT":{"type":"number","description":"The total value of outstanding derivatives contracts, given in units of the underlying currency. This will be equal to QUOTE / MARK_PRICE","x-cc-api-group":"MESSAGE"},"MARK_PRICE":{"type":"number","description":"The price at which the perpetual contract will be valued during the trading hours (unrealized pnl and liquidations) = QUOTE / SETTLEMENT","x-cc-api-group":"MESSAGE"},"QUOTE":{"type":"number","description":"The value of outstanding contracts, given in units of the quote currency. This will be equal to SETTLEMENT * MARK_PRICE","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the open interest update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this open interest update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"OPEN_INTEREST_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid open interest updates for the requested time period. Open interest updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled open interest updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of open interest updates, including historical corrections. If an open interest update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid open interest updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid open interest updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of open interest update and you can no longer easily guarantee you have received all open interest updates.","items":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_INSTRUMENT_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The open interest ID as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the open interest dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the open interest value was received. This varies (from a few millisconds to a few seconds) from the open interest value taking place on the market / exchange depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SETTLEMENT":{"type":"number","description":"The total value of outstanding derivatives contracts, given in units of the underlying currency. This will be equal to QUOTE / MARK_PRICE","x-cc-api-group":"MESSAGE"},"MARK_PRICE":{"type":"number","description":"The price at which the perpetual contract will be valued during the trading hours (unrealized pnl and liquidations) = QUOTE / SETTLEMENT","x-cc-api-group":"MESSAGE"},"QUOTE":{"type":"number","description":"The value of outstanding contracts, given in units of the quote currency. This will be equal to SETTLEMENT * MARK_PRICE","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the open interest update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this open interest update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"OPEN_INTEREST_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid open interest updates for the requested time period. Open interest updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled open interest updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of open interest update data, including historical corrections. If an open interest update was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid open interest updates in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/OPEN_INTEREST_INSTRUMENT_UPDATE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"FUNDING_RATE_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update. This is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"INTERVAL_MS":{"type":"number","description":"The funding rate interval in milliseconds. This is how often the funding rate is calculated.","x-cc-api-group":"VALUE"},"VALUE":{"type":"number","description":"The value of the funding rate.","x-cc-api-group":"VALUE"},"VALUE_FLAG":{"type":"string","description":"The flag indicating whether the value has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be given.","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide this information, the nanosecond part of the timestamp received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the last message update","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the last message update","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open funding rate value for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest funding rate value of the current hour. If there were no updates in the time period, the open funding rate value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest funding rate value of the current hour. If there have been no updates in the time period, the open funding rate value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the current HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open funding rate value for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the current day. If there have been no updates in the time period, the open value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the current day. If there have been no updates in the time period, the open value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the current DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The value of the closest update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest funding rate value of the current week, excluding the current day. I.e. Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN will be given.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest funding rate value of the current week, excluding the current day. I.e. Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN will be given.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the current WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The value of the closest update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest funding rate value of the current month, excluding the current day. I.e. 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN will be given.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest funding rate value of the current month, excluding the current day. I.e. 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN will be given.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the current MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The value of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest funding rate value of the current year, excluding the current day. I.e. the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest value between the CURRENT_YEAR_OPEN and the lowest update value of the year excluding the current day (1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year). If today is the 1st of January, the CURRENT_YEAR_OPEN will be given.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the current YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The value of the closest update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculations to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest funding rate value of the period. Here, the period runs from 24 hours ago to the beginning of the current hour (23 hours in total). If there have been no updates in the period, the MOVING_24_HOUR_OPEN will be given.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest funding rate value of the period. Here, the period runs from 24 hours ago to the beginning of the current hour (23 hours in total). If there have been no updates in the period, the MOVING_24_HOUR_OPEN will be given.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The value of the update closest to the period start date. Here the period starts 6 days + current day (00:00:00 GMT/UTC to now) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the period running from seven days ago to the beginning of the current day (6 days in total). If there have been no updates, the MOVING_7_DAY_OPEN will be given.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the period running from seven days ago to the beginning of the current day (6 days in total). If there have been no updates, the MOVING_7_DAY_OPEN will be given.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date. Here, the period starts 29 days + current day (00:00:00 GMT/UTC to now) ago.  This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the period running from 30 days ago to the beginning of the current day (29 days in total). If there have been no updates in the time period, the MOVING_30_DAY_OPEN will be given.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the period running from 30 days ago to the beginning of the current day (29 days in total). If there have been no updates in the time period, the MOVING_30_DAY_OPEN will be given.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date. Here, the period starts 89 days + current day (00:00:00 GMT/UTC to now) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the period running from 90 days ago up to the beginning of the current day (89 days in total). If there have been no updates in the period, the MOVING_90_DAY_OPEN will be given.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the period running from 90 days ago up to the beginning of the current day (89 days in total). If there have been no updates in the period, the MOVING_90_DAY_OPEN will be given.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date. Here, the period starts 179 days + current day (00:00:00 GMT/UTC to now) ago.  This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the period running from 180 days ago to the beginning of the current day (179 days in total). If there have been no updates in the period, the MOVING_180_DAY_OPEN will be given.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the period running from 180 days ago the beginning of the current day (179 days in total). If there have been no updates in the period, the MOVING_180_DAY_OPEN will be given.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date. Here, the period starts 364 days + current day (00:00:00 GMT/UTC to now) ago.  This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest funding rate value of the period running from 365 days ago to the beginning of the current day (364 days in total). If there have been no updates in the period, the MOVING_365_DAY_OPEN will be given.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest funding rate value of the period running from 365 days ago to the beginning of the curreny day (364 days in total). If there have been no updates in the period, the MOVING_365_DAY_OPEN will be given.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of updates between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first update available for the instrument under consideration","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The funding rate value of the first update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The funding rate value of the highest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The timestamp of the highest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The funding rate value of the lowest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of all updates that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"FUNDING_RATE_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"FUNDING_RATE_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC).","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of the message","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin  (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"INTERVAL_MS":{"type":"number","description":"The funding rate interval in milliseconds. This is how often the funding rate is calculated.","x-cc-api-group":"VALUE"},"OPEN":{"type":"number","description":"The open funding rate value for the historical period, based on the closest funding rate update before the period starts","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest value the funding rate reached during the historical period. If there were no messages in the time period, the opening value will be taken as the highest.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest value the funding rate reached during the historical period. If there were no messages in the time period, the opening value will be taken as the lowest.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The value of the last funding rate update in this time period. If there were no messages in the time period, the opening value will be taken as the close.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the first funding rate update of the time period. Only available when there is at least one funding rate update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the last funding rate update of the time period. Only available when there is at least one funding rate update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_VALUE":{"type":"number","description":"The funding rate value of the first received message of the time period. Only available when there is at least one funding rate update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_VALUE":{"type":"number","description":"The highest funding rate value of the messages that occurred within the time period. Only available when there is at least one funding rate update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the highest funding rate update of the time period. Only available when there is at least one funding rate update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_VALUE":{"type":"number","description":"The lowest funding rate value of the messages that occurred within the time period. Only available when we have at least one funding rate update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the lowest funding rate update of the time period. Only available when we have at least one funding rate update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_VALUE":{"type":"number","description":"The funding rate value of the last received message of the time period. Only available when we have at least one funding rate update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of message updates seen in this time period. This will be 0 if there were no messages in the time period.","x-cc-api-group":"MESSAGE"}}},"FUNDING_RATE_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"FUNDING_RATE_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc.).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"Either the funding rate ID as reported by the exchange; or the timestamp in seconds / milliseconds / nanoseconds depending on the funding rate dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the exchange or the received timestamp if the exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the timestamp - also the number of nanoseconds after the original timestamp that the funding rate update occurred.","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when we received the funding rate value. This may vary from the funding rate value taking place on the exchange by anything from a few milliseconds to a few seconds, depending on the exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp - also the number of nanoseconds after the received timestamp that we received the funding rate value.","x-cc-api-group":"MESSAGE"},"INTERVAL_MS":{"type":"number","description":"The funding rate interval in milliseconds. This is how often the funding rate is calculated.","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The funding rate value as given by the source.","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the index update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this index update, this is unique per exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"FUNDING_RATE_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid funding rate updates for the requested time period. Funding rate updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled funding rate updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of funding rate updates, including historical corrections. If an funding rate update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid funding rate updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid funding rate updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of funding rate update and you can no longer easily guarantee you have received all funding rate updates.","items":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"FUNDING_RATE_INSTRUMENT_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc.).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"Either the funding rate ID as reported by the exchange; or the timestamp in seconds / milliseconds / nanoseconds depending on the funding rate dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the exchange or the received timestamp if the exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the timestamp - also the number of nanoseconds after the original timestamp that the funding rate update occurred.","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when we received the funding rate value. This may vary from the funding rate value taking place on the exchange by anything from a few milliseconds to a few seconds, depending on the exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp - also the number of nanoseconds after the received timestamp that we received the funding rate value.","x-cc-api-group":"MESSAGE"},"INTERVAL_MS":{"type":"number","description":"The funding rate interval in milliseconds. This is how often the funding rate is calculated.","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The funding rate value as given by the source.","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the index update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this index update, this is unique per exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"FUNDING_RATE_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid funding rate updates for the requested time period. Funding rate updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled funding rate updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of funding rate update data, including historical corrections. If an funding rate update was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid funding rate updates in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/FUNDING_RATE_INSTRUMENT_UPDATE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"SETTLED_FUNDING_RATE_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc.).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The settled funding rate ID as reported by the exchange; or the settlement timestamp in seconds / milliseconds / nanoseconds.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The unix timestamp in seconds of when the funding rate settlement occurred.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the settlement timestamp.","x-cc-api-group":"MESSAGE"},"RATE":{"type":"number","description":"The decimal funding rate that was applied at settlement (e.g. 0.0001 = 0.01%).","x-cc-api-group":"MESSAGE"},"FUNDING_INTERVAL_HOURS":{"type":"number","description":"The funding interval window in hours (1, 2, 4, or 8).","x-cc-api-group":"MESSAGE"},"NEXT_TIMESTAMP":{"type":"integer","description":"The unix timestamp in seconds of the next expected funding rate settlement.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"NEXT_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the next settlement timestamp.","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when we received the settled funding rate value. This may vary from the settlement taking place on the exchange by anything from a few milliseconds to a few seconds, depending on the exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the settled funding rate update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this settled funding rate update, this is unique per exchange and instrument. Should always be increasing by 1 for each new update we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"SETTLED_FUNDING_RATE_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid settled funding rate updates for the requested time period. Settled funding rate updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled settled funding rate updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of settled funding rate update data, including historical corrections. If a settled funding rate update was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid settled funding rate updates in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/SETTLED_FUNDING_RATE_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"LIQUIDATION_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always increase by 1 for each new tick update.","x-cc-api-group":"VALUE"},"LONG_PRICE":{"type":"number","description":"The value of the latest long liquidation price","x-cc-api-group":"VALUE"},"LONG_PRICE_FLAG":{"type":"string","description":"The flag indicating if the long price value has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"SHORT_PRICE":{"type":"number","description":"The value of the latest short liquidation price","x-cc-api-group":"VALUE"},"SHORT_PRICE_FLAG":{"type":"string","description":"The flag indicating whether the short price has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide a timestamp, the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide a timestamp, the nanosecond part of the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the last message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the last message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_LONG_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide a timestamp, the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_LONG_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide a timestamp, the nanosecond part of the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_LONG_ID":{"type":"string","description":"The ID of the last long message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_LONG_CCSEQ":{"type":"number","description":"The CCSEQ of the last long message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_SHORT_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide a timestamp, the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_SHORT_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide a timestamp, the nanosecond part of the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_SHORT_ID":{"type":"string","description":"The ID of the last short message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_SHORT_CCSEQ":{"type":"number","description":"The CCSEQ of the last short message update.","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN_LONG_PRICE":{"type":"number","description":"The open long liquidation price for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN_SHORT_PRICE":{"type":"number","description":"The open short liquidation price for the current hour, this is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value of the current hour. If there have been no updates in the time period, the open long price value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price value of the current hour. If there have been no updates in the time period, the open short price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value of the current hour. If there have been no updates in the time period, the open long price value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value of the current hour. If there have been no updates in the time period, the open short price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUANTITY":{"type":"number","description":"The total quantity of liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LONG_QUANTITY":{"type":"number","description":"The total quantity of long liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SHORT_QUANTITY":{"type":"number","description":"The total quantity of short liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of long liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of short liquidations since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The open long liquidation price for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The open short liquidation price for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value of the current day. If there have been no updates in the time period, the open long price value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price value of the current day. If there have been no updates in the time period, the open short price value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value of the current day. If there have been no updates in the time period, the open long price value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value of the current day. If there have been no updates in the time period, the open short price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUANTITY":{"type":"number","description":"The total quantity of liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LONG_QUANTITY":{"type":"number","description":"The total quantity of long liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SHORT_QUANTITY":{"type":"number","description":"The total quantity of short liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of long liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of short liquidations since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates since the start of the current day.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the current day. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the current day. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current day. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current day. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_LONG_PRICE value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SHORT_PRICE value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_LONG_PRICE value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SHORT_PRICE value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUANTITY":{"type":"number","description":"The total quantity of liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LONG_QUANTITY":{"type":"number","description":"The total quantity of long liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SHORT_QUANTITY":{"type":"number","description":"The total quantity of short liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of long liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of short liquidations since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. To get the total weekly value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates since the start of the current week.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the current week. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the current week. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current week. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current week. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_LONG_PRICE value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SHORT_PRICE value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_LONG_PRICE value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SHORT_PRICE value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUANTITY":{"type":"number","description":"The total quantity of liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LONG_QUANTITY":{"type":"number","description":"The total quantity of long liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SHORT_QUANTITY":{"type":"number","description":"The total quantity of short liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of long liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of short liquidations since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0. To get the total monthly value, add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates since the start of the current month.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the current month. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the current month. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current month. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current month. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_LONG_PRICE value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_SHORT_PRICE":{"type":"number","description":"The highest long price value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SHORT_PRICE value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_LONG_PRICE value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SHORT_PRICE value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUANTITY":{"type":"number","description":"The total quantity of liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LONG_QUANTITY":{"type":"number","description":"The total quantity of long liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SHORT_QUANTITY":{"type":"number","description":"The total quantity of short liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of long liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity of short liquidations since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0. To get the total yearly value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates since the start of the current year.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the current year. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the current year. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current year. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current year. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_LONG_PRICE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total). To get the total 24 hour value add CURRENT_HOUR_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 24 hours.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 24 hours.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value within the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE value - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total). To get the total 7 day value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 7 days.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 7 days.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value within the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE value - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total). To get the total 30 day value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 30 days.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 30 days.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value within the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE value - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOWER_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total). To get the total 90 day value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 90 days.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 90 days.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value within the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE value - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total). To get the total 180 day value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 180 days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 180 days.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN_LONG_PRICE":{"type":"number","description":"The value of the closest long price update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the closest short price update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_LONG_PRICE":{"type":"number","description":"The highest long price value within the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_LONG_PRICE value - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_SHORT_PRICE":{"type":"number","description":"The highest short price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day high value will either be this, or the CURRENT_DAY_HIGH_SHORT_PRICE - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_LONG_PRICE":{"type":"number","description":"The lowest long price value in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_LONG_PRICE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_SHORT_PRICE":{"type":"number","description":"The lowest short price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day low value will either be this, or the CURRENT_DAY_LOW_SHORT_PRICE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUANTITY":{"type":"number","description":"The total quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LONG_QUANTITY":{"type":"number","description":"The total long quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value in the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of updates between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total). To get the total 365 day value add CURRENT_DAY_TOTAL_LIQUIDATION_UPDATES to this value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long updates in the last 365 days.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short updates in the last 365 days.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_LONG_PRICE":{"type":"number","description":"The value of the first long price update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_SHORT_PRICE":{"type":"number","description":"The value of the first short price update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_LONG_PRICE":{"type":"number","description":"The value of the highest recorded long price update for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_LONG_PRICE_TS":{"type":"number","description":"The timestamp of the highest long price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SHORT_PRICE":{"type":"number","description":"The value of the highest short price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SHORT_PRICE_TS":{"type":"number","description":"The timestamp of the highest short price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_LONG_PRICE":{"type":"number","description":"The value of the lowest long price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_LONG_PRICE_TS":{"type":"number","description":"The timestamp of the lowest long price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SHORT_PRICE":{"type":"number","description":"The value of the lowest short price update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SHORT_PRICE_TS":{"type":"number","description":"The timestamp of the lowest short price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUANTITY":{"type":"number","description":"The total quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LONG_QUANTITY":{"type":"number","description":"The total long quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_SHORT_QUANTITY":{"type":"number","description":"The total short quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_QUANTITY":{"type":"number","description":"The total quote quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LONG_QUOTE_QUANTITY":{"type":"number","description":"The total long quote quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total short quote quantity value that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of all updates that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of all long updates that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of all short updates that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LONG_PRICE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_SHORT_PRICE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LONG_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"},"LIFETIME_SHORT_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"LIQUIDATION_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"LIQUIDATION_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"number","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC)."},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant across all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"QUANTITY":{"type":"number","description":"The total quantity of all liquidations that occurred during the period, in units of the index underlying currency. If there were no liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"LONG_QUANTITY":{"type":"number","description":"The total quantity of all long liquidations that occurred during the period, in units of the index underlying currency. If there were no long liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"SHORT_QUANTITY":{"type":"number","description":"The total quantity of all short liquidations that occurred during the period, in units of the index underlying currency. If there were no short liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"QUOTE_QUANTITY":{"type":"number","description":"The total quantity of all liquidations that occurred during the period, in units of the quote currency. If there were no liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"LONG_QUOTE_QUANTITY":{"type":"number","description":"The total quantity of all long liquidations that occurred during the period, in units of the quote currency. If there were no long liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"SHORT_QUOTE_QUANTITY":{"type":"number","description":"The total quantity of all short liquidations that occurred during the period, in units of the quote currency. If there were no short liquidations in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"OPEN_LONG_PRICE":{"type":"number","description":"The open long liquidation price for the historical period, based on the closest long liquidation before the period start","x-cc-api-group":"OHLC"},"HIGH_LONG_PRICE":{"type":"number","description":"The highest long liquidation price of the historical period. If there were no long liquidations in the period, the open price will be taken as the highest.","x-cc-api-group":"OHLC"},"LOW_LONG_PRICE":{"type":"number","description":"The lowest long liquidation price of the historical period. If there were no long liquidations in the period, the open price will be taken as the lowest.","x-cc-api-group":"OHLC"},"CLOSE_LONG_PRICE":{"type":"number","description":"The price of the last long liquidation of the historical period. If there were no long liquidations in the period, the open price will be taken as the close.","x-cc-api-group":"OHLC"},"OPEN_SHORT_PRICE":{"type":"number","description":"The open short liquidation price for the historical period, based on the closest short liquidation before the period start.","x-cc-api-group":"OHLC"},"HIGH_SHORT_PRICE":{"type":"number","description":"The highest short liquidation price of the historical period. If there were no short liquidations in the period, the open price will be taken as the highest.","x-cc-api-group":"OHLC"},"LOW_SHORT_PRICE":{"type":"number","description":"The lowest short liquidation price of the historical period. If there were no short liquidations in the period, the open price will be taken as the lowest.","x-cc-api-group":"OHLC"},"CLOSE_SHORT_PRICE":{"type":"number","description":"The price of the last short liquidation of the historical period. If there were no short liquidations in the period, the open price will be taken as the close.","x-cc-api-group":"OHLC"},"VWAP_PRICE":{"type":"number","description":"Quantity-weighted average price for all liquidations received during the time period. If there were no liquidations in the time period, 0 will be given.","x-cc-api-group":"VWAP"},"VWAP_LONG_PRICE":{"type":"number","description":"Quantity-weighted average price for all long liquidations received during the time period. If there were no long liquidations in the time period, 0 will be given.","x-cc-api-group":"VWAP"},"VWAP_SHORT_PRICE":{"type":"number","description":"Quantity-weighted average price for all short liquidations received during the time period. If there were no short liquidations in the time period, 0 will be given.","x-cc-api-group":"VWAP"},"FIRST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the first liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_SIDE":{"type":"number","description":"The side of the first liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the first liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the first liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the first liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the highest price liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SIDE":{"type":"number","description":"The side of the highest price liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the highest price liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the highest price liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the highest price liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the lowest price liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SIDE":{"type":"number","description":"The side of the lowest price liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the lowest price liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the lowest price liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the lowest price liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LARGEST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the largest quantity liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LARGEST_MESSAGE_SIDE":{"type":"number","description":"The side of the largest quantity liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LARGEST_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the largest quantity liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LARGEST_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the largest quantity liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LARGEST_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the largest quantity liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"SMALLEST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the smallest quantity liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"SMALLEST_MESSAGE_SIDE":{"type":"number","description":"The side of the smallest quantity liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"SMALLEST_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the smallest quantity liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"SMALLEST_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the smallest quantity liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"SMALLEST_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the smallest quantity liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the last liquidation message in this time period. Only available when there is at least one liquidation in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_SIDE":{"type":"number","description":"The side of the last liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_PRICE":{"type":"number","description":"The price corresponding to the last liquidation message in the time period. Only available when there is at least one liquidation message in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_QUOTE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the quote currency, of the last liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_QUANTITY":{"type":"number","description":"The liquidation quantity, given in units of the index underlying currency, of the last liquidation update of the time period. Only available when there is at least one liquidation update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"TOTAL_LONG_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of long liquidation message updates seen in this time period.","x-cc-api-group":"MESSAGE"},"TOTAL_SHORT_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of short liquidation message updates seen in this time period.","x-cc-api-group":"MESSAGE"},"TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of liquidation messages seen in this time period.","x-cc-api-group":"MESSAGE"}}},"LIQUIDATION_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"LIQUIDATION_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant across all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The liquidation ID as reported by the market / exchange or the timestamp in seconds / milliseconds / nanoseconds depending on the liquidation dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"number","description":"The timestamp in seconds that the liquidation value was received. This varies (from a few milliseconds to a few seconds) from the liquidation taking place on the market / exchange depending on the market / exchange API options / rate limits","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SIDE":{"type":"string","description":"Whether the liquidated position was long or short. Long liquidations refer to a liquidation buy order, and short liquidations refer to a sell order","x-cc-api-group":"MESSAGE"},"PRICE":{"type":"number","description":"The price at which the position was liquidated. Also known as the bankruptcy price.","x-cc-api-group":"MESSAGE"},"QUANTITY":{"type":"number","description":"The quantity of the liquidation, in units of the index underlying currency.","x-cc-api-group":"MESSAGE"},"QUOTE_QUANTITY":{"type":"number","description":"The quantity of the liquidation, in units of the quote currency.","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the liquidation update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this liquidation update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new update we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update: VALID, INVALID_DUPLICATE, INVALID_CORRUPTED and INVALID_MIGRATED.","example":"VALID","x-cc-api-group":"STATUS"}}},"LIQUIDATION_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid liquidation updates for the requested time period. Updates are ordered by CCSEQ. Invalid updates are retained for continuity.","items":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"LIQUIDATION_INSTRUMENT_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant across all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The liquidation ID as reported by the market / exchange or the timestamp in seconds / milliseconds / nanoseconds depending on the liquidation dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"number","description":"The timestamp in seconds that the liquidation value was received. This varies (from a few milliseconds to a few seconds) from the liquidation taking place on the market / exchange depending on the market / exchange API options / rate limits","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SIDE":{"type":"string","description":"Whether the liquidated position was long or short. Long liquidations refer to a liquidation buy order, and short liquidations refer to a sell order","x-cc-api-group":"MESSAGE"},"PRICE":{"type":"number","description":"The price at which the position was liquidated. Also known as the bankruptcy price.","x-cc-api-group":"MESSAGE"},"QUANTITY":{"type":"number","description":"The quantity of the liquidation, in units of the index underlying currency.","x-cc-api-group":"MESSAGE"},"QUOTE_QUANTITY":{"type":"number","description":"The quantity of the liquidation, in units of the quote currency.","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the liquidation update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this liquidation update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new update we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update: VALID, INVALID_DUPLICATE, INVALID_CORRUPTED and INVALID_MIGRATED.","example":"VALID","x-cc-api-group":"STATUS"}}},"LIQUIDATION_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid liquidation updates for the requested time period. Updates are ordered by CCSEQ. Invalid updates are retained for continuity.","items":{"$ref":"#/components/schemas/LIQUIDATION_INSTRUMENT_UPDATE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"FUTURES_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"INSTRUMENT_EXTERNAL_DATA":{"type":"string","description":"The full data we get from the polling endpoint for this specific instrument. This is a JSON stringified object with different properties per exchange.","x-cc-api-group":"GENERAL"},"INSTRUMENT_AVAILABLE_ON_INSTRUMENTS_ENDPOINT":{"type":"boolean","description":"This flags the exchange instrument is currently available on instruments endpoint.","default":true,"example":true,"x-cc-api-group":"GENERAL"},"INDEX_ID":{"type":"string","description":"The id of the index the contract is based on.","x-cc-api-group":"GENERAL"},"INDEX_UNDERLYING":{"type":"string","description":"The underlying instrument of the index.","x-cc-api-group":"GENERAL"},"QUOTE_CURRENCY":{"type":"string","description":"The instrument that the contract is priced in.","x-cc-api-group":"GENERAL"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency used to calculate contract PnL. The settlement currency can be different from the index underlying or quote currencies.","x-cc-api-group":"GENERAL"},"DENOMINATION_TYPE":{"type":"string","description":"VANILLA = (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE = (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), QUANTO (SETTLEMENT_CURRENCY != INDEX_UNDERLYING or QUOTE_CURRENCY)","x-cc-api-group":"GENERAL"},"CONTRACT_CURRENCY":{"type":"string","description":"The denomination of the CONTRACT_SIZE.","x-cc-api-group":"GENERAL"},"CONTRACT_SIZE":{"type":"number","description":"The contract size - how much of the contract currency does one contract contain.","x-cc-api-group":"GENERAL"},"TICK_SIZE":{"type":"number","description":"The minimum amount the price can move, denominated in QUOTE_CURRENCY","x-cc-api-group":"GENERAL"},"DELIVERY_METHOD":{"type":"string","description":"The settlement delivery method on the derivative product.","x-cc-api-group":"GENERAL"},"CONTRACT_TERM":{"type":"string","description":"The term / duration the contract represents e.g. 3xMONTH.","x-cc-api-group":"GENERAL"},"FUNDING_INTERVAL_HOURS":{"type":"number","description":"Time between funding measured in hours, if 0 it means the funding interval is continuous.","x-cc-api-group":"GENERAL"},"CONTRACT_CREATION_TS":{"type":"number","description":"The contract creation timestamp we get for the specific derivative instrument.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_TS":{"type":"number","description":"The contract expiration timestamp we get for the specific derivative instrument. Not needed for PERPETUAL contract types.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_YEAR":{"type":"number","description":"Year in which the contract expires.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_MONTH_CODE":{"type":"string","description":"Month in which the contract expires.","x-cc-api-group":"GENERAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"ORDERBOOK_MAX_DEPTH":{"type":"number","description":"The maximum number of positions to keep in the orderbook, for each side.","x-cc-api-group":"GENERAL"},"FIRST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the initial Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"LAST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the latest Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"INSTRUMENT_TRADE_FUTURES_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for TRADE_FUTURES.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume TRADE_FUTURES via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_TRADES_FUTURES":{"type":"number","description":"This is both the CCSEQ and the total TRADES_FUTURES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_TRADES_FUTURES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from TRADES_FUTURES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_TRADE_FUTURES_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_POLLING":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_POLLING":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_STREAMING":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_STREAMING":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_GO":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_GO":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_BLOB":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_BLOB":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_CALCULATED":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_CALCULATED":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_BACKFILL":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_BACKFILL":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_FIX":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_FIX":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_FUTURES_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_EOD":{"type":"object","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_EOD":{"type":"object","description":"This is the last TRADE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"LIQUIDATION":{"type":"string"},"NUMBER_OF_CONTRACTS":{"type":"number"},"QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_FUTURES_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first TRADE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_FUTURES_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last TRADE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_FUTURES_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for FUNDING_RATE_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume FUNDING_RATE_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total FUNDING_RATE_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_FUNDING_RATE_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from FUNDING_RATE_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_GO":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_GO":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_FIX":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_FIX":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_FUNDING_RATE_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_EOD":{"type":"object","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_EOD":{"type":"object","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"INTERVAL_MS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_FUNDING_RATE_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_FUNDING_RATE_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_FUNDING_RATE_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OPEN_INTEREST_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OPEN_INTEREST_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total OPEN_INTEREST_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OPEN_INTEREST_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OPEN_INTEREST_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_GO":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_GO":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_FIX":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_FIX":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_EOD":{"type":"object","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_EOD":{"type":"object","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for LIQUIDATION_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume LIQUIDATION_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total LIQUIDATION_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_LIQUIDATION_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from LIQUIDATION_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_GO":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_GO":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_FIX":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_FIX":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with LIQUIDATION_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for LIQUIDATION_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_LIQUIDATION_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get LIQUIDATION_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_EOD":{"type":"object","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_EOD":{"type":"object","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SIDE":{"type":"string"},"PRICE":{"type":"number"},"QUANTITY":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_LIQUIDATION_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first LIQUIDATION_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_LIQUIDATION_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last LIQUIDATION_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_LIQUIDATION_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper LIQUIDATION_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for SETTLED_FUNDING_RATE_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume SETTLED_FUNDING_RATE_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_SETTLED_FUNDING_RATE_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total SETTLED_FUNDING_RATE_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_SETTLED_FUNDING_RATE_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from SETTLED_FUNDING_RATE_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_GO":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_GO":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with SETTLED_FUNDING_RATE_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for SETTLED_FUNDING_RATE_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get SETTLED_FUNDING_RATE_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD":{"type":"object","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD":{"type":"object","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RATE":{"type":"number"},"FUNDING_INTERVAL_HOURS":{"type":"number"},"NEXT_TIMESTAMP":{"type":"number"},"NEXT_TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last SETTLED_FUNDING_RATE_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_SETTLED_FUNDING_RATE_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper SETTLED_FUNDING_RATE_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OB_L2_UPDATE_FUTURES.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OB_L2_UPDATE_FUTURES via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OB_L2_UPDATE_FUTURES":{"type":"number","description":"This is both the CCSEQ and the total OB_L2_UPDATE_FUTURES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OB_L2_UPDATE_FUTURES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OB_L2_UPDATE_FUTURES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_POLLING":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_POLLING":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_STREAMING":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_STREAMING":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_GO":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_GO":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_BLOB":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_BLOB":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_CALCULATED":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_CALCULATED":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_BACKFILL":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_BACKFILL":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_FIX":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_FIX":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_FUTURES for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_FUTURES on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_FUTURES_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_FUTURES for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_EOD":{"type":"object","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_EOD":{"type":"object","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_FUTURES_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_FUTURES that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_FUTURES_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_FUTURES that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_FUTURES_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_FUTURES data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_POLLING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_STREAMING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_GO":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BLOB":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_CALCULATED":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BACKFILL":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_FIX":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_EOD":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"FIRST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"}}},"FUTURES_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_METADATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"FUTURES_EXCHANGE_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_FUTURES":{"type":"integer","description":"The total number of futures trades that this exchange has processed.","example":79278,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_OPEN_INTEREST_UPDATES":{"type":"integer","description":"The total number of futures open interest updates that this exchange has processed.","example":381170,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_FUNDING_RATE_UPDATES":{"type":"integer","description":"The total number of futures funding rate updates that this exchange has processed.","example":594176,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_LIQUIDATION_UPDATES":{"type":"integer","description":"The total number of futures liquidation updates that this exchange has processed.","example":594176,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED":{"type":"boolean","description":"Boolean field denoting if we have historical minute orderbook snapshots enabled for this exchange.","example":true,"x-cc-api-group":"BASIC"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_PERPETUAL_CONTRACTS":{"type":"boolean","description":"Indicates whether the exchange offers perpetual futures contracts.","x-cc-api-group":"BASIC"},"FUNDING_RATE_SETTLEMENT_INTERVALS":{"type":"array","description":"Indicates the variety of funding intervals allowed for perpetual futures on the exchange. An exchange may have different funding intervals for different instruments.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The funding rate settlement interval"}}},"x-cc-api-group":"BASIC"},"HAS_CALENDAR_CONTRACTS":{"type":"boolean","description":"Indicates whether or not the exchange lists Calendar style futures with a set expiry date.","x-cc-api-group":"BASIC"},"CALENDAR_FUTURES_EXPIRY_INTERVALS":{"type":"array","description":"What variety of expiry intervals is offered for calendar futures on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The calendar futures expiry interval"}}},"x-cc-api-group":"BASIC"},"FUTURES_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for futures trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"FUTURES_SETTLEMENT_TYPES":{"type":"array","description":"Defines the types of settlement methods used for futures contracts on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the settlement type"}}},"x-cc-api-group":"BASIC"},"FUTURES_DENOMINATION_TYPES":{"type":"array","description":"Defines the types of denomination methods used for futures contracts based on the relationship between settlement currency, quote currency, and index underlying.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the denomination type"}}},"x-cc-api-group":"BASIC"},"FUTURES_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Futures API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, enabling controlled API access and efficient role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"FUTURES_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the futures integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"FUTURES_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_FUNDING_RATE_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_FUNDING_RATE_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_OPEN_INTEREST_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_OPEN_INTEREST_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_INDEX_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_INDEX_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"}}},"FUTURES_EXCHANGE_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FUTURES_EXCHANGE_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"FUTURES_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_FUTURES":{"type":"integer","description":"The total number of futures trades that this exchange has processed.","example":79278,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_OPEN_INTEREST_UPDATES":{"type":"integer","description":"The total number of futures open interest updates that this exchange has processed.","example":381170,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_FUNDING_RATE_UPDATES":{"type":"integer","description":"The total number of futures funding rate updates that this exchange has processed.","example":594176,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_LIQUIDATION_UPDATES":{"type":"integer","description":"The total number of futures liquidation updates that this exchange has processed.","example":594176,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"HAS_ORDERBOOK_L2_MINUTE_SNAPSHOTS_ENABLED":{"type":"boolean","description":"Boolean field denoting if we have historical minute orderbook snapshots enabled for this exchange.","example":true,"x-cc-api-group":"BASIC"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_PERPETUAL_CONTRACTS":{"type":"boolean","description":"Indicates whether the exchange offers perpetual futures contracts.","x-cc-api-group":"BASIC"},"FUNDING_RATE_SETTLEMENT_INTERVALS":{"type":"array","description":"Indicates the variety of funding intervals allowed for perpetual futures on the exchange. An exchange may have different funding intervals for different instruments.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The funding rate settlement interval"}}},"x-cc-api-group":"BASIC"},"HAS_CALENDAR_CONTRACTS":{"type":"boolean","description":"Indicates whether or not the exchange lists Calendar style futures with a set expiry date.","x-cc-api-group":"BASIC"},"CALENDAR_FUTURES_EXPIRY_INTERVALS":{"type":"array","description":"What variety of expiry intervals is offered for calendar futures on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The calendar futures expiry interval"}}},"x-cc-api-group":"BASIC"},"FUTURES_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for futures trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"FUTURES_SETTLEMENT_TYPES":{"type":"array","description":"Defines the types of settlement methods used for futures contracts on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the settlement type"}}},"x-cc-api-group":"BASIC"},"FUTURES_DENOMINATION_TYPES":{"type":"array","description":"Defines the types of denomination methods used for futures contracts based on the relationship between settlement currency, quote currency, and index underlying.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the denomination type"}}},"x-cc-api-group":"BASIC"},"FUTURES_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Futures API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, enabling controlled API access and efficient role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"FUTURES_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the futures integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"FUTURES_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_FUNDING_RATE_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_FUNDING_RATE_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_FUNDING_RATE_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_OPEN_INTEREST_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_OPEN_INTEREST_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_OPEN_INTEREST_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_INDEX_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_INDEX_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_INDEX_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_FUTURES"},"FUTURES_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"HAS_FUTURES_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_FUTURES"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"INDEX_UNDERLYING":{"type":"string","description":"The underlying instrument for the index. This can be used with the index endpoint to retrieve values and additional information. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"BTC"},"QUOTE_CURRENCY":{"type":"string","description":"The asset in which the contract is priced.","example":"USD"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency used to calculate the contract's PnL. The settlement currency may differ from the index's underlying or quote currencies. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"USD"},"CONTRACT_CURRENCY":{"type":"string","description":"The asset in which the CONTRACT_SIZE is denominated. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"BTC"},"DENOMINATION_TYPE":{"type":"string","description":"Defines the denomination type of the contract: VANILLA (SETTLEMENT_CURRENCY = QUOTE_CURRENCY), INVERSE (SETTLEMENT_CURRENCY = INDEX_UNDERLYING), or QUANTO (SETTLEMENT_CURRENCY ≠ INDEX_UNDERLYING and ≠ QUOTE_CURRENCY).","example":"VANILLA"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal underlying asset ID of the index. This ID is static and will never change.","example":1},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID that the contract is priced in. This ID is static and will never change.","example":5},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID used to calculate contract PnL. The settlement asset can be different from the index underlying or quote currencies. This ID is static and will never change.","example":5},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID of the denomination of the CONTRACT_SIZE. This ID is static and will never change.","example":1},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"HAS_TRADES_FUTURES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has futures trades or not. ","example":true},"HAS_OPEN_INTEREST_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has futures open interest updates or not. ","example":true},"HAS_FUNDING_RATE_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has futures funding rate updates or not. ","example":true},"HAS_LIQUIDATION_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has futures liquidations updates or not. ","example":true},"FIRST_TRADE_FUTURES_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed futures trade for this instrument. This timestamp represents the earliest futures trade recorded in our system. Updates to this value are rare and may take up to 1 hour to appear on the API if we backfill data earlier than previously recorded.","example":1677283205,"format":"unix_timestamp"},"FIRST_OPEN_INTEREST_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed open interest update for this instrument. This timestamp represents the earliest open interest data recorded in our system. Updates are rare but may take up to 1 hour to appear on the API if backfilled.","example":1677283205,"format":"unix_timestamp"},"FIRST_FUNDING_RATE_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed funding rate update for this instrument. This represents the earliest funding rate data recorded in our system. Updates are rare and may take up to 1 hour to be visible on the API if backfilled.","example":1677283205,"format":"unix_timestamp"},"FIRST_LIQUIDATION_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed liquidation update for this instrument. This timestamp represents the earliest liquidation event recorded in our system. Updates are rare and may take up to 1 hour to appear on the API if backfilled.","example":1677283205,"format":"unix_timestamp"},"LAST_TRADE_FUTURES_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last futures trade observed for this instrument. This timestamp represents when the most recent futures trade was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the futures trades by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"LAST_OPEN_INTEREST_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last futures open interest update observed for this instrument. This timestamp represents when the most recent futures open interest update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the futures open interest updates by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"LAST_FUNDING_RATE_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last futures funding rate update observed for this instrument. This timestamp represents when the most recent futures funding rate update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the futures funding rate updates by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"LAST_LIQUIDATION_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last futures liquidation update observed for this instrument. This timestamp represents when the most recent futures liquidation update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the futures liquidations updates by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"TOTAL_TRADES_FUTURES":{"type":"number","description":"The total number of futures trades processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":79278},"TOTAL_OPEN_INTEREST_UPDATES":{"type":"number","description":"The total number of futures open interest updates processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":381170},"TOTAL_FUNDING_RATE_UPDATES":{"type":"number","description":"The total number of futures funding rate updates processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":594176},"TOTAL_LIQUIDATION_UPDATES":{"type":"number","description":"The total number of futures liquidation updates processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":485123},"CONTRACT_EXPIRATION_TS":{"type":"number","description":"The contract expiration timestamp we get for the specific derivative instrument. Not needed for PERPETUAL contract types.","example":1681914057}}}}}}},"FUTURES_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FUTURES_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"OPTIONS_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset / quote / counter symbol / coin (e.g. USD) Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The mapped currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"STRIKE_CURRENCY":{"type":"string","description":"The strike currency of the contract underlying index.","x-cc-api-group":"MAPPING"},"OPTIONS_TYPE":{"type":"string","description":"The type of option contract.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"PRICE":{"type":"number","description":"The price in the to asset / quote / counter symbol / coin) of the trade.","x-cc-api-group":"VALUE"},"PRICE_FLAG":{"type":"string","description":"The flag indicating if the price has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange or the received timestamp if the market / exchange does not provide one of the last trade that had an impact on the price.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange or the nanosecond part of the received timestamp if the market / exchange does not provide one of the last trade that had an impact on the price.","x-cc-api-group":"VALUE"},"LAST_TRADE_NUMBER_OF_CONTRACTS":{"type":"number","description":"The number of contracts of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUANTITY":{"type":"number","description":"The quantity of the last trade in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_QUOTE_QUANTITY":{"type":"number","description":"The total volume in the to asset / quote of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_NOTIONAL_QUANTITY":{"type":"number","description":"The notional quantity of the last trade in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_NOTIONAL_QUOTE_QUANTITY":{"type":"number","description":"The total notional volume in the to asset / quote of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_ID":{"type":"string","description":"The ID of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_CCSEQ":{"type":"number","description":"The CCSEQ of the last trade.","x-cc-api-group":"LAST_UPDATE"},"LAST_TRADE_SIDE":{"type":"string","description":"The side of the last trade.","x-cc-api-group":"LAST_UPDATE"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / counter symbol / coin). Here, the bid price represents the highest price a buyer is willing to pay for some amount of a given asset. This value is scaled to represent a single unit of that asset. E.g. for a BTC-USD order book, the price would be quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). E.g., for a BTC-USD order book, this value would represent how much BTC a buyer would be willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best bid in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best bid in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best bid position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best bid but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best bid position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / counter symbol / coin). Here, the ask price represents the lowest price a seller is willing to sell for some amount of a given asset. This value is scaled to represent a single unit of that asset. E.g. for a BTC-USD order book, the price would be quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). E.g., for a BTC-USD order book, this value would represent how much BTC a seller is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating the most recent update to the best ask in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating the most recent update to the best ask in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS":{"type":"number","description":"The timestamp (in seconds) indicating best ask position entry/update time in the order book, as reported by the market / exchange. If the market / exchange does not provide this information, the received timestamp will be returned. This is not the time it was promoted to best ask but the time it was added/updated in the order book.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_POSITION_IN_BOOK_UPDATE_TS_NS":{"type":"number","description":"The nanosecond component of the timestamp indicating best ask position entry or update time in the order book. The value is numerical and provides granular time data for high-frequency trading or other time-sensitive operations.","x-cc-api-group":"TOP_OF_BOOK"},"CURRENT_HOUR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the start of the current hour until now.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open price for the current hour, this is based on the closest trade before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) in the current hour. If there were no trades in the period, the open value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) in the current hour. If there were no trades in the period, the open value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the CURRENT_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the start of the current day (00:00:00 GMT/UTC) until now.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open price for the current day, this is based on the closest trade before the start of the current day (00:00:00 GMT/UTC to now). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) in the current day (00:00:00 GMT/UTC to now). If there were no trades in the period, the open will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) in the current day. (00:00:00 GMT/UTC to now). If there were no trades in the period, the open will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME":{"type":"number","description":"The sum of all trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The price of the closest trade to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last trade that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest trade price (given in the quote currency) of the week, excluding the current day. So, the period here is Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest trade price (given in the quote currency) of the week, excluding the current day. So, the period here is Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES":{"type":"number","description":"The total number of trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The price of the closest trade to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last trade that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Represented in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest traded price (given in the quote currency) of the month, excluding the current day. So, here the period runs from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest traded price (given in the quote currency) of the month, excluding the current day. So, here the period runs from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME":{"type":"number","description":"The sum of all trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the first of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The price of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. This would be, in a highly liquid market, the last trade that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest traded price (given in the quote currency) of the year, excluding the current day. So here, the period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest traded price (given in the quote currency) of the year, excluding the current day. So here, the period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME":{"type":"number","description":"The sum of all trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade notional quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade notional quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade notional quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (6 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (29 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all notional trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (89 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_BUY":{"type":"number","description":"The sum of all trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The price of the closest trade to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest traded value (given in the quote currency) of the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest traded value (given in the quote currency) of the period running from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES":{"type":"number","description":"The total number of trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_BUY":{"type":"number","description":"The total number of buy trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_SELL":{"type":"number","description":"The total number of sell trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of unknown trades between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_TRADE_TS":{"type":"number","description":"The timestamp of the first trade ever recorded for this instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all trade number of contracts of all the trades of this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"number","description":"The sum of all trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"number","description":"The sum of all trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_VOLUME":{"type":"number","description":"The sum of all notional trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quantities of all the trades of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all notional trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all buy notional trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all sell notional trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all unknown notional trade quote quantities of all the trades of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The price of the first trade of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The price of the highest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The price of the lowest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest trade ever executed on this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES":{"type":"number","description":"The total count of all trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_BUY":{"type":"number","description":"The total count of all buy trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_SELL":{"type":"number","description":"The total count of all sell trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total count of all unknown trades that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"OPTIONS_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"OPTIONS_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC).","format":"unix_timestamp"},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping. ","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the  contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"STRIKE_CURRENCY":{"type":"string","description":"The strike currency of the contract underlying index.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN":{"type":"number","description":"The open price for the historical period, based on the closest trade before the period start","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest trade price of the historical period. If there were no trades in the period, the open price will be taken as the highest.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest trade price of the historical period. If there were no trades in the period, the open price will be taken as the lowest.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The price of the last trade of the historical period. If there were no trades in the period, the open price will be taken as the close.","x-cc-api-group":"OHLC"},"FIRST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first trade of the time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last trade of the time period. Only available when there is at least one trade in the time period).","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"FIRST_TRADE_PRICE":{"type":"number","description":"The price of the first trade of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_PRICE":{"type":"number","description":"The highest trade price of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"HIGH_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest trade in this time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_PRICE":{"type":"number","description":"The lowest trade price of the time period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"LOW_TRADE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest trade of the time period. Only available when there is at least one trade in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_TRADE"},"LAST_TRADE_PRICE":{"type":"number","description":"The price of the last trade of the period. Only available when there is at least one trade in the time period.","x-cc-api-group":"OHLC_TRADE"},"NUMBER_OF_CONTRACTS":{"type":"number","description":"The sum of all the trade number of contracts for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"TRADE"},"TOTAL_TRADES":{"type":"number","description":"The total number of trades that occurred in the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_BUY":{"type":"number","description":"The total number of BUY trades that occurred in the in time period.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_SELL":{"type":"number","description":"The total number of SELL trades that occurred in the time period.","x-cc-api-group":"TRADE"},"TOTAL_TRADES_UNKNOWN":{"type":"number","description":"The total number of UNKNOWN trades that occurred in the time period.","x-cc-api-group":"TRADE"},"VOLUME":{"type":"number","description":"The sum of all the trade volumes in the from asset (base symbol / coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"number","description":"The sum of all the trade volumes in the To asset (quote/counter symbol/coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all the BUY trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all the SELL trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_VOLUME":{"type":"number","description":"The sum of all the notional trade volumes in the from asset (base symbol / coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"NOTIONAL_QUOTE_VOLUME":{"type":"number","description":"The sum of all the notional trade volumes in the To asset (quote/counter symbol/coin) for the time period. If there were no trades in the time period, 0 will be given.","x-cc-api-group":"VOLUME"},"NOTIONAL_VOLUME_BUY":{"type":"number","description":"The sum of all the BUY notional trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_QUOTE_VOLUME_BUY":{"type":"number","description":"The sum of all the BUY notional trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_VOLUME_SELL":{"type":"number","description":"The sum of all the SELL notional trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_QUOTE_VOLUME_SELL":{"type":"number","description":"The sum of all the SELL notional trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN notional trade volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"NOTIONAL_QUOTE_VOLUME_UNKNOWN":{"type":"number","description":"The sum of all the UNKNOWN notional trade volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"}}},"OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"OPTIONS_INSTRUMENT_TRADE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. deribit, bitmex, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g., BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"BASE_CURRENCY":{"type":"string","description":"The base currency of the contract underlying index. Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function applied during mapping to convert values into more human-readable formats and ensure the mapped direction \"BASE-QUOTE\" remains consistent across instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. UNKNOWN is given only when the underlying market / exchange API does not provide a side.","x-cc-api-group":"TRADE"},"ID":{"type":"string","description":"The trade ID as reported by the market / exchange. If not provided by the exchange, it will be the timestamp of the trade plus a number from 0 to 999 to ensure uniqueness, assuming there would never be more than 1000 trades in any given second.","x-cc-api-group":"TRADE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when the trade was received. This may differ from the trade timestamp by milliseconds to seconds depending on the market / exchange API options and rate limits.","format":"unix_timestamp","x-cc-api-group":"TRADE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"TRADE"},"NUMBER_OF_CONTRACTS":{"type":"number","description":"The total number of contracts traded.","x-cc-api-group":"TRADE"},"INDEX_PRICE":{"type":"number","description":"The value of the index price at the time of the trade.","x-cc-api-group":"TRADE"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number","description":"The timestamp in seconds, when we last received an index price update.","x-cc-api-group":"TRADE"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number","description":"The nanosecond part of the last index price ts.","x-cc-api-group":"TRADE"},"QUANTITY":{"type":"number","description":"The volume of this trade, given in units of the from currency (base symbol / coin / contract / index). This is the underlying currency equivalent for the contracts traded. EG for BTCUSDPERP it is BTC. This is equal to QUOTE_QUANTITY * INDEX_PRICE","x-cc-api-group":"TRADE"},"NOTIONAL_QUANTITY":{"type":"number","description":"The notional volume of this trade, given in units of the from currency (base symbol / coin / contract / index). This is the underlying currency equivalent for the contracts traded. EG for BTCUSDPERP it is BTC. This is equal to NOTIONAL_QUOTE_QUANTITY * INDEX_PRICE","x-cc-api-group":"TRADE"},"PRICE":{"type":"number","description":"The price of the trade, given in units of the to instrument (quote / counter symbol / coin / index).","x-cc-api-group":"TRADE"},"QUOTE_QUANTITY":{"type":"number","description":"The total volume in the to instrument (quote / counter symbol / coin  / index) of the trade. This is equal to QUANTITY * PRICE.","x-cc-api-group":"TRADE"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number","description":"The total notional volume in the to instrument (quote / counter symbol / coin  / index) of the trade. This is equal to NOTIONAL_QUANTITY * PRICE.","x-cc-api-group":"TRADE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc.","x-cc-api-group":"TRADE"},"CCSEQ":{"type":"number","description":"The internal sequence number for this trade, unique per market/exchange and trading pair. It should always increase by 1 with each new trade discovered, ensuring there are no gaps, though not necessarily in chronological order.","x-cc-api-group":"TRADE"},"STATUS":{"type":"string","description":"The status of the trade.","example":"VALID","x-cc-api-group":"STATUS"},"EXECUTION_CONTEXT":{"type":"object","description":"This specifies if a trade is either a combo, block, or both: e.g\n\nEXAMPLES:\n\nBoth combo and block are present:\n{\n    COMBO: {\n        ID: '385073621',\n        COMBO_INSTRUMENT: 'BTC-CS-21SEP25-116000_119000'\n    },\n    BLOCK: {\n        ID: 'BLOCK-225908'\n    }\n}\n\nOnly combo is present:\n{\n    COMBO: {\n        ID: '385073621',\n        COMBO_INSTRUMENT: 'BTC-CS-21SEP25-116000_119000'\n    }\n}\n\nCombo+block (no combo trade ID from exchange):\n{\n    COMBO: {\n        COMBO_INSTRUMENT: 'BTC-CS-27MAR26-69000_71000'\n    },\n    BLOCK: {\n        ID: 'BLOCK-268159'\n    }\n}\n\nOnly block is present:\n{\n    BLOCK: {\n        ID: 'BLOCK-225908'\n    }\n}\n\nWhen neither combo nor block are present, it will be an empty object: {}\n","properties":{"COMBO":{"type":"object","description":"The combo information for the trade.","x-cc-api-group":"TRADE","properties":{"ID":{"type":"string","description":"The combo ID as provided by the exchange. Not always present (e.g. Deribit omits it for combo-block trades)."},"COMBO_INSTRUMENT":{"type":"string","description":"The combo instrument as provided by the exchange."}}},"BLOCK":{"type":"object","description":"The block information for the trade.","x-cc-api-group":"TRADE","properties":{"ID":{"type":"string","description":"The block ID as provided by the exchange."}}}},"x-cc-api-group":"TRADE"}}},"OPTIONS_INSTRUMENT_TRADE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid trades for the requested time period. Trades are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled trades that are added later will appear at the end of the array. This ensures a reliable and sequential view of trades, including historical corrections. If a trades was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid trades to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid trades from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of trades and you can no longer easily guarantee you have received all trades","items":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_TRADE"}},"Err":{"type":"object","properties":{}}}},"OPTIONS_ORDERBOOK_L2_METRICS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the minute. It would be every minute at the beginning of the minute.","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 975 for OPTIONS_MAPPED_ORDERBOOK_SNAPSHOT_METRICS and 396 for OPTIONS_UNMAPPED_ORDERBOOK_SNAPSHOT_METRICS.","example":"975","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. binance, deribit, kraken, etc).","example":"coinbase","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update.","x-cc-api-group":"ID"},"INDEX_SOURCE":{"type":"string","description":"Indicates the source of the index data for the market Greeks. This field specifies where the index data is obtained from and is recorded as a string identifier provided by the exchange.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The INDEX_UNDERLYING field represents the underlying index for the financial instrument, particularly relevant in derivatives markets. This is the index that a derivative's price is based upon. It is crucial for instruments like index futures or options, providing a benchmark that influences the pricing and settlement of these contracts.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The QUOTE_CURRENCY field specifies the currency in which the price of the instrument is quoted. For a trading pair, this is the second currency in the pair (e.g., USD in BTC-USD). It is a key component in determining the value of trades and positions, reflecting the currency in which profits, losses, and trading volumes are denominated.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The SETTLEMENT_CURRENCY field indicates the currency in which the contract is settled. Unlike the quote currency, the settlement currency is used for the final settlement of the contract, particularly relevant in futures or options markets. This field helps market participants understand in which currency the contract's value will be delivered or received upon settlement.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The CONTRACT_CURRENCY field denotes the currency in which the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for the contract's pricing and settlement. Understanding the contract currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options.","x-cc-api-group":"MAPPING"},"STRIKE_CURRENCY":{"type":"string","description":"The STRIKE_CURRENCY field denotes the currency in which the strike price of the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for determining the price at which the contract can be exercised. Understanding the strike currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options. It helps in evaluating the financial implications of the contract in different currency scenarios and managing exchange rate risk.","x-cc-api-group":"MAPPING"},"DEPTH_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for the depth of the order book, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"SLIPPAGE_ASSET":{"type":"string","description":"Represents the quote asset or counter coin symbol for slippage, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"ID"},"MARKET_GREEKS_TS":{"type":"number","description":"Represents the timestamp of the market Greeks data in seconds since the Unix epoch (January 1, 1970). It indicates when the data was recorded. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_GREEKS_TS_NS":{"type":"number","description":"Represents the nanoseconds portion of the market Greeks timestamp. It allows for more precise time measurements when combined with MARKET_GREEKS_TS. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_MARK_IMPLIED_VOL":{"type":"number","description":"Represents the implied volatility of the market mark price. Implied volatility is a measure of the market's forecast of a likely movement in a security's price. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_BID_IMPLIED_VOL":{"type":"number","description":"Represents the implied volatility of the bid price. It indicates the market's expectation of volatility based on the bid price. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_ASK_IMPLIED_VOL":{"type":"number","description":"Represents the implied volatility of the ask price. It indicates the market's expectation of volatility based on the ask price. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_DELTA":{"type":"number","description":"Represents the measure of the sensitivity of the option's price to changes in the price of the underlying asset. A delta of -0.8942 means that for a $1 increase in the underlying asset's price, the option's price is expected to decrease by $0.8942. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_GAMMA":{"type":"number","description":"Represents the measures the rate of change of delta with respect to changes in the underlying asset's price. A gamma of 0.00012 means that for a $1 change in the price of the underlying asset, the delta is expected to change by 0.00012. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_RHO":{"type":"number","description":"Represents measures the sensitivity of the option's price to changes in interest rates. A rho of -1.50759 indicates that for a 1% increase in interest rates, the option's price is expected to decrease by 1.50759 units. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_THETA":{"type":"number","description":"Represents the measures the sensitivity of the option's price to the passage of time, also known as time decay. A theta of -144.72827 means that for each day that passes, the option's price is expected to decrease by 144.72827 units, all else being equal. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"MARKET_VEGA":{"type":"number","description":"Represents the measures the sensitivity of the option's price to changes in the volatility of the underlying asset. A vega of 6.08498 means that for a 1% increase in the volatility of the underlying asset, the option's price is expected to increase by 6.08498 units. This data is directly provided by the exchange.","x-cc-api-group":"GREEKS"},"LATEST_INDEX_VALUE":{"type":"number","description":"Represents the latest value of the index for the market Greeks. This is a numerical value provided directly by the exchange, representing the most recent index data available.","x-cc-api-group":"TOP_OF_BOOK"},"LATEST_INDEX_VALUE_TS":{"type":"number","description":"Represents the timestamp in seconds since the Unix epoch (January 1, 1970) when the latest index value for the market Greeks was recorded. This data is provided directly by the exchange.","x-cc-api-group":"TOP_OF_BOOK"},"LATEST_INDEX_VALUE_TS_NS":{"type":"number","description":"Represents the timestamp in nanoseconds since the Unix epoch (January 1, 1970) when the latest index value for the market Greeks was recorded. This provides a more precise time reference and is provided directly by the exchange.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID":{"type":"number","description":"The price of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the highest price a person is willing to pay for some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUANTITY":{"type":"number","description":"The quantity of the best bid in the from asset (base / coin). For a BTC-USD order book , this will be the amount of BTC someone is willing to buy at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_BID_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best bid in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to purchasing BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK":{"type":"number","description":"The price of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the best price someone is willing to sell some BTC in USD, as quoted for 1 full BTC.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUANTITY":{"type":"number","description":"The quantity of the best ask in the from asset (base / coin). For a BTC-USD order book, this will be the amount of BTC a person is willing to sell at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"BEST_ASK_QUOTE_QUANTITY":{"type":"number","description":"The quote quantity of the best ask in the to asset (quote / numberer symbol / coin). For a BTC-USD order book, this will be the total USD committed to selling BTC at the best price.","x-cc-api-group":"TOP_OF_BOOK"},"MID_PRICE":{"type":"number","description":"Represents the mid-price between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD_PERCENTAGE":{"type":"number","description":"Represents the percentage difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"},"SPREAD":{"type":"number","description":"Represents the absolute difference between the best bid and best ask prices in the order book for a specific instrument.","x-cc-api-group":"TOP_OF_BOOK"}},"additionalProperties":{"type":"number","description":"Contains calculated metrics for market depth and slippage limits, tailored for adaptive trading strategies. Depth fields are prefixed with DEPTH_ and quantify the market depth at specified percentages away from the best ask or bid prices, serving as indicators of liquidity and market stability. Slippage fields, prefixed with SLIPPAGE_, outline the average or maximum slippage values for trading, available in both specific price points and raw figures. Note: slippage metrics can return null for high order values if the market depth is insufficient to fill the order.","pattern":"/^(DEPTH_(BEST|MID)_PRICE_(ASK|BID)_([0-9]+(.[0-9]+)?)_PERCENT|SLIPPAGE_((BEST|MID)_PRICE|RAW)_(AVG|MAX)_(ASK|BID)_([0-9]+(.[0-9]+)?))$/"}},"OPTIONS_ORDERBOOK_L2_METRICS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/OPTIONS_ORDERBOOK_L2_METRICS"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"OPTIONS_ORDERBOOK_L2_SNAPSHOTS":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day.","example":"MINUTE"},"TIMESTAMP":{"type":"integer","description":"This field represents the UNIX timestamp, recorded in seconds, that marks the start of each minute. It serves as a precise point-in-time identifier, ensuring that the associated data is accurately timestamped at the very beginning of each minute. This timestamp is crucial for synchronizing and comparing data points across different time series or datasets, facilitating accurate time-based analysis and reporting.","format":"unix_timestamp","example":1707436800},"TYPE":{"type":"string","description":"Type of the message. We currently support two types: 397 for OPTIONS_UNMAPPED_ORDERBOOK_SNAPSHOT_HISTORY and 978 for OPTIONS_MAPPED_ORDERBOOK_SNAPSHOT_HISTORY.","example":"978"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. gemini, kraken, coinbase, etc).","example":"coinbase"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for the last order book update applied to underlying order book snapshot, this is unique per exchange and instrument. Should always be increasing by 1 for each new order book update."},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. This takes the form \"BASE-QUOTE\" (e.g. BTC-USD). Only available on instruments that have been mapped."},"INDEX_UNDERLYING":{"type":"string","description":"The INDEX_UNDERLYING field represents the underlying index for the financial instrument, particularly relevant in derivatives markets. This is the index that a derivative's price is based upon. It is crucial for instruments like index futures or options, providing a benchmark that influences the pricing and settlement of these contracts."},"QUOTE_CURRENCY":{"type":"string","description":"The QUOTE_CURRENCY field specifies the currency in which the price of the instrument is quoted. For a trading pair, this is the second currency in the pair (e.g., USD in BTC-USD). It is a key component in determining the value of trades and positions, reflecting the currency in which profits, losses, and trading volumes are denominated."},"SETTLEMENT_CURRENCY":{"type":"string","description":"The SETTLEMENT_CURRENCY field indicates the currency in which the contract is settled. Unlike the quote currency, the settlement currency is used for the final settlement of the contract, particularly relevant in futures or options markets. This field helps market participants understand in which currency the contract's value will be delivered or received upon settlement."},"CONTRACT_CURRENCY":{"type":"string","description":"The CONTRACT_CURRENCY field denotes the currency in which the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for the contract's pricing and settlement. Understanding the contract currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options."},"STRIKE_CURRENCY":{"type":"string","description":"The STRIKE_CURRENCY field denotes the currency in which the strike price of the contract is denominated. This is particularly relevant for financial derivatives, indicating the currency used for determining the price at which the contract can be exercised. Understanding the strike currency is crucial for market participants to assess the risk and value of the contract, especially in markets with multiple currency options. It helps in evaluating the financial implications of the contract in different currency scenarios and managing exchange rate risk."},"LATEST_INDEX_VALUE":{"type":"number","description":"Represents the most recent value of the underlying index for the cryptocurrency option. This index value is crucial for pricing and assessing the market conditions of the option. It reflects the current market price or value of the cryptocurrency on which the options contract is based."},"LATEST_INDEX_VALUE_TS":{"type":"number","description":"Represents the timestamp in seconds since the Unix epoch (January 1, 1970) when the latest index value was recorded."},"LATEST_INDEX_VALUE_TS_NS":{"type":"number","description":"Represents the nanoseconds portion of the timestamp for the latest index value."},"TOTAL_AVAILABLE_ASKS":{"type":"number","description":"Represents the total number of Level 2 ask positions available in the order book for a specific options instrument. This metric provides insight into the depth of the market on the sell side, indicating the number of distinct price levels at which sellers are willing to transact."},"TOTAL_AVAILABLE_BIDS":{"type":"number","description":"Represents the total number of Level 2 bid positions available in the order book for a specific options instrument. It reflects the market depth on the buy side, showing the number of different price levels at which buyers are placing their bids."},"ASKS":{"type":"array","description":"Details the list of best ask prices in the order book for a specific options instrument, highlighting the lowest prices at which sellers are willing to sell their holdings, along with the quantity available at each price level.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"The price at which one unit of the options contract can be bought. This is denoted in the quote currency or asset. For a BTC-USD options contract, this is the USD amount required to purchase one contract of BTC."},"NUMBER_OF_CONTRACTS":{"type":"number","description":"Represents the total number of options contracts available at the corresponding ask price. It indicates the volume of contracts sellers are willing to sell at that price level."},"LAST_UPDATE":{"type":"number","description":"The timestamp of the most recent update to an ask price in the order book, given in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanosecond part of the last update timestamp for more precise timing. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."},"QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the quantity of the cryptocurrency options calculated using the latest index value. This provides the number of options contracts available or requested based on the most recent index price, helping market participants understand the volume of options traded or quoted."},"QUOTE_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the quoted quantity of the cryptocurrency options using the latest index value. This indicates the amount of cryptocurrency underlying the options contracts quoted at the latest index price, offering insights into market depth and liquidity."},"NOTIONAL_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the options contracts, calculated using the latest index value. This is the total value of the options positions based on the most recent index price, reflecting the market's monetary exposure to the cryptocurrency options."},"NOTIONAL_QUOTE_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the quoted options contracts using the latest index value. This reflects the total quoted value in terms of the underlying cryptocurrency, providing an overview of the potential market size and risk exposure.."},"ORDER_INDEX_VALUE":{"type":"number","description":"Represents the index value used for a specific order in the options market. This value is used to price and evaluate the order, reflecting the index price at the time the order was placed or modified. Accurate order index values are crucial for fair and transparent trading."},"ORDER_INDEX_VALUE_TS":{"type":"number","description":"Represents the timestamp in seconds since the Unix epoch (January 1, 1970) when the order index value was recorded. This timestamp helps to determine the exact time at which the order index value was captured, providing context for the order's pricing and timing."},"ORDER_INDEX_VALUE_TS_NS":{"type":"number","description":"Represents the nanoseconds portion of the timestamp for the order index value. This allows for a more precise time measurement when combined with ORDER_INDEX_VALUE_TS, ensuring high accuracy in the timing of the order's index value."},"QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the quantity of the cryptocurrency options calculated using the order index value. This shows the number of options contracts available or requested based on the index price at the time of the order, indicating the order's volume."},"QUOTE_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the quoted quantity of the cryptocurrency options using the order index value. This indicates the amount of cryptocurrency underlying the options contracts quoted at the order index price, providing insights into the order's impact on market depth and liquidity."},"NOTIONAL_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the options contracts, calculated using the order index value. This is the total value of the options positions based on the index price at the time of the order, reflecting the monetary exposure of the order in the cryptocurrency options market."},"NOTIONAL_QUOTE_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents indicates the notional value of the quoted options contracts using the order index value. This reflects the total quoted value in terms of the underlying cryptocurrency, providing an overview of the order's potential market size and risk exposure."}}}},"BIDS":{"type":"array","description":"Lists the best bid prices in the order book for a specific options instrument, showing the highest prices buyers are willing to pay, along with the quantity they are willing to buy at each price level.","items":{"type":"object","properties":{"PRICE":{"type":"number","description":"The price at which one unit of the options contract can be sold. It is expressed in the quote currency or asset. For a BTC-USD options contract, this is the amount in USD one receives for selling one BTC contract."},"NUMBER_OF_CONTRACTS":{"type":"number","description":"Denotes the total number of options contracts buyers are willing to purchase at the bid price. It reflects the demand for contracts at that price level."},"LAST_UPDATE":{"type":"number","description":"Timestamp indicating the last time a bid price was updated in the order book, measured in seconds. If the market / exchange does not provide this information, the received timestamp will be returned."},"LAST_UPDATE_NS":{"type":"number","description":"Provides the nanoseconds part of the last update timestamp for enhanced precision. If the market / exchange does not provide this information, the received nanoseconds part of the timestamp will be returned."},"QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the quantity of the cryptocurrency options calculated using the latest index value. This provides the number of options contracts available or requested based on the most recent index price, helping market participants understand the volume of options traded or quoted."},"QUOTE_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the quoted quantity of the cryptocurrency options using the latest index value. This indicates the amount of cryptocurrency underlying the options contracts quoted at the latest index price, offering insights into market depth and liquidity."},"NOTIONAL_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the options contracts, calculated using the latest index value. This is the total value of the options positions based on the most recent index price, reflecting the market's monetary exposure to the cryptocurrency options."},"NOTIONAL_QUOTE_QUANTITY_USING_LATEST_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the quoted options contracts using the latest index value. This reflects the total quoted value in terms of the underlying cryptocurrency, providing an overview of the potential market size and risk exposure.."},"ORDER_INDEX_VALUE":{"type":"number","description":"Represents the index value used for a specific order in the options market. This value is used to price and evaluate the order, reflecting the index price at the time the order was placed or modified. Accurate order index values are crucial for fair and transparent trading."},"ORDER_INDEX_VALUE_TS":{"type":"number","description":"Represents the timestamp in seconds since the Unix epoch (January 1, 1970) when the order index value was recorded. This timestamp helps to determine the exact time at which the order index value was captured, providing context for the order's pricing and timing."},"ORDER_INDEX_VALUE_TS_NS":{"type":"number","description":"Represents the nanoseconds portion of the timestamp for the order index value. This allows for a more precise time measurement when combined with ORDER_INDEX_VALUE_TS, ensuring high accuracy in the timing of the order's index value."},"QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the quantity of the cryptocurrency options calculated using the order index value. This shows the number of options contracts available or requested based on the index price at the time of the order, indicating the order's volume."},"QUOTE_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the quoted quantity of the cryptocurrency options using the order index value. This indicates the amount of cryptocurrency underlying the options contracts quoted at the order index price, providing insights into the order's impact on market depth and liquidity."},"NOTIONAL_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents the notional value of the options contracts, calculated using the order index value. This is the total value of the options positions based on the index price at the time of the order, reflecting the monetary exposure of the order in the cryptocurrency options market."},"NOTIONAL_QUOTE_QUANTITY_USING_ORDER_INDEX_VALUE":{"type":"number","description":"Represents indicates the notional value of the quoted options contracts using the order index value. This reflects the total quoted value in terms of the underlying cryptocurrency, providing an overview of the order's potential market size and risk exposure."}}}}}},"OPTIONS_ORDERBOOK_L2_SNAPSHOTS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/OPTIONS_ORDERBOOK_L2_SNAPSHOTS"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"STRIKE_CURRENCY":{"type":"string","description":"The strike currency of the contract underlying index.","x-cc-api-group":"MAPPING"},"OPTIONS_TYPE":{"type":"string","description":"The type of option contract.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always increase by 1 for each new tick update.","x-cc-api-group":"VALUE"},"VALUE_SETTLEMENT":{"type":"number","description":"The value of the latest settlement.","x-cc-api-group":"VALUE"},"VALUE_SETTLEMENT_FLAG":{"type":"string","description":"The flag indicating if the settlement value has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"VALUE_MARK_PRICE":{"type":"number","description":"The value of the latest mark price.","x-cc-api-group":"VALUE"},"VALUE_MARK_PRICE_FLAG":{"type":"string","description":"The flag indicating whether the mark price has increased, decreased, or remained the same.","x-cc-api-group":"VALUE"},"VALUE_QUOTE":{"type":"number","description":"The latest settlement value, in units of the quote currency.","x-cc-api-group":"VALUE"},"VALUE_QUOTE_FLAG":{"type":"string","description":"The flag indicating whether the quote value has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp, in seconds, as reported by the market / exchange. If the market / exchange does not provide a timestamp, the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange. If the market / exchange does not provide a timestamp, the nanosecond part of the received timestamp will be given.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the last message update.","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the last message update.","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN_MARK_PRICE":{"type":"number","description":"The open mark price value for the current hour, this is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN_QUOTE":{"type":"number","description":"The open settlement value, in units of the quote currency, for the current hour. This is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price value of the current hour. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current hour that the mark price is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, in units of the quote currency, of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value (in units of the quote currency) is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price value of the current hour. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current hour that the mark price is lowest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, in units of the quote currency, of the current hour. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current hour that the settlement value (in units of the quote currency) is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_CHANGE":{"type":"number","description":"The value change from the current hour. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the current hour. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The open mark price value for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN_QUOTE":{"type":"number","description":"The open settlement value, in units of the quote currency, for the current day. This is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current day. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current day that the mark price is highest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, in units of the quote currency, of the current day. If there have been no updates in the time period, the open quote settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value (in units of the quote currency) is highest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current day. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current day that the mark price is lowest. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, in units of the quote currency, of the current day. If there have been no updates in the time period, the open settlement value will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current day that the settlement value (in units of the quote currency) is lowest. If there have been no updates in the time period, the open mark price will be given.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN_QUOTE":{"type":"number","description":"The value of the settlement update, in units of the quote currency, closest to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE value will be given. The weekly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current week (excluding the current day) that the mark price is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT will be given. The weekly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher mark price.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, CURRENT_WEEK_OPEN_QUOTE will be given. The weekly value will wither be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE value will be given. The weekly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current week (excluding the current day) that the mark price is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_SETTLEMENT will be given. The weekly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current week, excluding the current day. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, CURRENT_WEEK_OPEN_QUOTE will be given. The weekly value will wither be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current week (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, or there have been no updates in the time period, the CURRENT_WEEK_OPEN_MARK_PRICE will be given. The weekly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. To get the total weekly value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN_QUOTE":{"type":"number","description":"The settlement value, in units of the quote currency, of the closest update to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE value will be given. The monthly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current month (excluding the current day) that the mark price is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT will be given. The monthly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher associated mark price.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_QUOTE will be given. The monthly value will either be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current month (excluding the current day) that the settlement value is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE value will be given. The monthly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current month (excluding the current day) that the mark price is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_SETTLEMENT will be given. The monthly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current month, excluding the current day. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st day of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_QUOTE value will be given. The monthly value will either be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, or there have been no updates in the time period, the CURRENT_MONTH_OPEN_MARK_PRICE will be given. The monthly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0. To get the total monthly value, add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN_QUOTE":{"type":"number","description":"The settlement value, in units of the quote currency, of the closest update to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value is highest. I.e. for the period running from the 1st January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE value will be given. The yearly high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement value, at the point in the current year (excluding the current day) that the mark price is highest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT will be given. The yearly value will either be this, or the settlement value corresponding to the CURRENT_DAY_HIGH_MARK_PRICE - whichever has a higher associated mark price.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value (in the quote currency) of the current year, excluding the current day. I.e. for the period running from the 1st January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_QUOTE will be given. The yearly value will either be this, or the CURRENT_DAY_HIGH_QUOTE value - whichever is highest.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is highest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_HIGH_QUOTE - whichever has the highest associated settlement value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE value will be given. The yearly low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"he settlement value, at the point in the current year (excluding the current day) that the mark price is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_SETTLEMENT will be given. The yearly value will either be this, or the settlement value corresponding to the CURRENT_DAY_LOW_MARK_PRICE - whichever has a lower mark price.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value (in the quote currency) of the current year, excluding the current day. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st day of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_QUOTE value will be given. The yearly value will either be this, or the CURRENT_DAY_LOW_QUOTE value - whichever is lowest.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the current year (excluding the current day) that the settlement value (in the quote currency) is lowest. I.e. for the period running from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, or there have been no updates in the time period, the CURRENT_YEAR_OPEN_MARK_PRICE will be given. The yearly value will either be this, or the mark price corresponding to the CURRENT_DAY_LOW_QUOTE - whichever has the lowest associated settlement value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0. To get the total yearly value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN_QUOTE":{"type":"number","description":"The value of the closest quote update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_SETTLEMENT - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total) The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour high value will either be this, or the CURRENT_HOUR_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 24 hours ago to the beginning of the current day (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total) The 24 hour value will either be this, or the CURRENT_HOUR_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour low value will either be this, or the CURRENT_HOUR_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 24 hours ago up to the beginning of the current hour (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 24 hours ago to the beginning of the current day (23 hours in total). The 24 hour value will either be this, or the CURRENT_HOUR_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total). To get the total 24 hour value add CURRENT_HOUR_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 6 full days, plus the time that has elapsed in the current day. So, the period start date will be (6 days + (xx:xx:xx GMT/UTC current day - 00:00:00 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 7 days ago up to the beginning of the current hour (6 days in total) The 7 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 7 days ago to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total) The 7 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 7 days ago up to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 7 days ago to the beginning of the current day (6 days in total). The 7 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total). To get the total 7 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 29 full days, plus the time that has elapsed in the current day. So, the period start date will be (29 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total) The 30 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 30 days ago to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total) The 30 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 30 days ago up to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 30 days ago to the beginning of the current day (29 days in total). The 30 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total). To get the total 30 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 89 full days, plus the time that has elapsed in the current day. So, the period start date will be (89 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total) The 90 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 90 days ago to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total) The 90 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 90 days ago up to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 90 days ago to the beginning of the current day (89 days in total). The 90 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total). To get the total 90 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 179 full days, plus the time that has elapsed in the current day. So, the period start date will be (179 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total) The 180 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 180 days ago to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total) The 180 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 180 days ago up to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 180 days ago to the beginning of the current day (179 days in total). The 180 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total). To get the total 180 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN_SETTLEMENT":{"type":"number","description":"The value of the closest settlement update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN_MARK_PRICE":{"type":"number","description":"The value of the closest mark price update to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN_QUOTE":{"type":"number","description":"The value of the closest settlement update (in the quote currency) to the period start date. Here, the period is equal to 364 full days, plus the time that has elapsed in the current day. So, the period start date will be (364 days + (xxxxxx GMT/UTC current day - 000000 GMT/UTC )) ago. This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_SETTLEMENT":{"type":"number","description":"The highest settlement value within the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT value - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is highest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total) The 365 day value will either be this, or the CURRENT_DAY_HIGH_SETTLEMENT_MARK_PRICE - whichever has a higher associated settlement.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_MARK_PRICE":{"type":"number","description":"The highest mark price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day high value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is highest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_MARK_PRICE_SETTLEMENT - whichever has a higher associated mark price.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_QUOTE":{"type":"number","description":"The highest settlement value, given in the quote currency, in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE - whichever is higher.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is highest. Here, the period runs from 365 days ago to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_HIGH_QUOTE_MARK_PRICE - whichever has the higher associated settlement value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_SETTLEMENT":{"type":"number","description":"The lowest settlement value in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOWER_SETTLEMENT - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point during the period that the settlement value is lowest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total) The 365 day value will either be this, or the CURRENT_DAY_LOW_SETTLEMENT_MARK_PRICE - whichever has a lower associated settlement.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_MARK_PRICE":{"type":"number","description":"The lowest mark price in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day low value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in the period that the mark price is lowest. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_MARK_PRICE_SETTLEMENT - whichever has a lower associated mark price.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_QUOTE":{"type":"number","description":"The lowest settlement value, given in the quote currency, in the period running from 365 days ago up to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_QUOTE - whichever is lower.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in the period that the settlement (in the quote currency) is lowest. Here, the period runs from 365 days ago to the beginning of the current day (364 days in total). The 365 day value will either be this, or the CURRENT_DAY_LOW_QUOTE_MARK_PRICE - whichever has a lower associated settlement value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of updates between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total). To get the total 365 day value add CURRENT_DAY_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES to this value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_SETTLEMENT":{"type":"number","description":"The value of the first settlement update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_MARK_PRICE":{"type":"number","description":"The value of the first mark price update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN_QUOTE":{"type":"number","description":"The value of the first settlement update of the instrument, in the quote currency.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT":{"type":"number","description":"The value of the highest recorded settlement update for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the highest settlement value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_SETTLEMENT_TS":{"type":"number","description":"The timestamp of the highest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE":{"type":"number","description":"The value of the highest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in time that the highest mark price value recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_MARK_PRICE_TS":{"type":"number","description":"The timestamp of the highest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE":{"type":"number","description":"The value of the highest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the highest settlement (in the quote currency) value occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_QUOTE_TS":{"type":"number","description":"The timestamp of the highest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT":{"type":"number","description":"The value of the lowest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the lowest settlement value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_SETTLEMENT_TS":{"type":"number","description":"The timestamp of the lowest settlement update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE":{"type":"number","description":"The value of the lowest mark price update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The settlement, at the point in time that the lowest mark price value ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_MARK_PRICE_TS":{"type":"number","description":"The timestamp of the lowest mark price update ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE":{"type":"number","description":"The value of the lowest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time that the lowest settlement update (in the quote currency) ever recorded occurs.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_QUOTE_TS":{"type":"number","description":"The timestamp of the lowest settlement update (in the quote currency) ever recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of all updates that have ever been recorded for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_SETTLEMENT_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_MARK_PRICE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_SETTLEMENT_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"},"LIFETIME_MARK_PRICE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The level of granularity (e.g. MINUTE / HOUR / DAY)."},"TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the histo period. This refers to the first timestamp of the unit under consideration, not the last (e.g. for daily data the timestamp will refer to 00:00 GMT/UTC).","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. bitmex, deribit, ftx, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"STRIKE_CURRENCY":{"type":"string","description":"The strike currency of the contract underlying index.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN_SETTLEMENT":{"type":"number","description":"The open settlement value for the historical period, given in units of the underlying asset. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"OPEN_MARK_PRICE":{"type":"number","description":"The mark price coresponding to the open settlement value for the historical period, given in units of the quote currency. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"OPEN_QUOTE":{"type":"number","description":"The open settlement for the historical period, given in units of the quote currency. This is based on the closest open interest update before the period start","x-cc-api-group":"OHLC"},"HIGH_SETTLEMENT":{"type":"number","description":"The highest value the settlement reached during the historical period. If there were no messages in the time period, the open settlement value will be taken as the highest.","x-cc-api-group":"OHLC"},"HIGH_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, given in units of the quote currency, at the point in time where the open interest settlement value is highest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"HIGH_MARK_PRICE":{"type":"number","description":"The highest value the mark price reached during the historical period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"HIGH_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, given in units of the underlying currency, at the point in time where the mark price is highest. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"HIGH_QUOTE":{"type":"number","description":"The highest value, in units of the quote currency, the open interest settlement reached during the time period. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"HIGH_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, given in units of the quote currency, at the point in time where the open interest settlement value (in units of the quote currency) is highest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_SETTLEMENT":{"type":"number","description":"The lowest value the settlement reached during the historical period. If there were no messages in the time period, the open settlement value will be taken as the lowest.","x-cc-api-group":"OHLC"},"LOW_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the open interest settlement value (in units of the underlying currency) is lowest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_MARK_PRICE":{"type":"number","description":"The lowest value the mark price reached during the historical period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"LOW_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, given in units of the underlying currency, at the point in time where the mark price is lowest. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"LOW_QUOTE":{"type":"number","description":"The lowest value, in units of the quote currency, that the open interest settlement reached during the time period. If there were no messages in the time period, the opening settlement value will be given.","x-cc-api-group":"OHLC"},"LOW_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the open interest settlement value (in units of the quote currency) is lowest. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"CLOSE_SETTLEMENT":{"type":"number","description":"The value of the last open interest settlement update in this time period. If there were no messages in the time period, the open settlement value will be given.","x-cc-api-group":"OHLC"},"CLOSE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the last open interest update value in this time period. If there were no messages in the time period, the opening mark price will be given.","x-cc-api-group":"OHLC"},"CLOSE_QUOTE":{"type":"number","description":"The open interest value of the last message of the period, given in units of the quote currency. If there were no messages in the time period, the open quote settlement value will be given.","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the first open interest update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_SETTLEMENT":{"type":"number","description":"The open interest value of the first open interest settlement update in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the first open interest update in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_QUOTE":{"type":"number","description":"The open interest value, given in units of the quote currency, of the first open interest update of the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT":{"type":"number","description":"The highest open interest settlement value of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the update with the highest settlement value occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_SETTLEMENT_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest settlement value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE":{"type":"number","description":"The highest mark price value of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement, at the point in time where the update with the highest mark price occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_MARK_PRICE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest mark price value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE":{"type":"number","description":"The highest settlement value, given in units of the quote currency, of the messages in the time period. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the highest open interest settlement value (in units of the quote currency) of the messages in the time period occurred. Only available when there is at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_QUOTE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest open interest quote value update in this time period. Only available when there is at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT":{"type":"number","description":"The lowest settlement value of the messages in the time period. Only available when there is at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the lowest open interest value of the messagse in the time period occurred. Only available when there is at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_SETTLEMENT_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest settlement update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE":{"type":"number","description":"The lowest mark price value of the messages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE_SETTLEMENT":{"type":"number","description":"The open interest settlement value, at the point in time where the lowest mark price of the messages in the time period occurred. Only available when we have at least one open interest update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_MARK_PRICE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest mark price update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE":{"type":"number","description":"The lowest open interest value, in the quote currency, of the messages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE_MARK_PRICE":{"type":"number","description":"The mark price, at the point in time where the lowest open interest value (in the quote currency) of the messages in the time period occurred. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_QUOTE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest open interest value, given in the quote currency, in the time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last open interest update in this time period. Only available when we have at least one open interest update in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_SETTLEMENT":{"type":"number","description":"The last open interest update settlement value in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_MARK_PRICE":{"type":"number","description":"The mark price corresponding to the last open interest update value in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_QUOTE":{"type":"number","description":"The last open interest value, in the quote currency, of the messsages in the time period. Only available when we have at least one open interest update in the time period.","x-cc-api-group":"OHLC_MESSAGE"},"TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of message updates seen in this time period. This value will be 0 when there no messages in the time period.","x-cc-api-group":"MESSAGE"}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g.,s BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping. ","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The open interest ID as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the open interest dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the open interest value was received. This varies (from a few millisconds to a few seconds) from the open interest value taking place on the market / exchange depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SETTLEMENT":{"type":"number","description":"The total value of outstanding derivatives contracts, given in units of the underlying currency. This will be equal to QUOTE / MARK_PRICE","x-cc-api-group":"MESSAGE"},"MARK_PRICE":{"type":"number","description":"The price at which the perpetual contract will be valued during the trading hours (unrealized pnl and liquidations) = QUOTE / SETTLEMENT","x-cc-api-group":"MESSAGE"},"QUOTE":{"type":"number","description":"The value of outstanding contracts, given in units of the quote currency. This will be equal to SETTLEMENT * MARK_PRICE","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the open interest update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this open interest update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid open interest updates for the requested time period. Open interest updates are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled open interest updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of open interest updates, including historical corrections. If an open interest update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid open interest updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid open interest updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of open interest update and you can no longer easily guarantee you have received all open interest updates.","items":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. Coinbase, Kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange, which can have various formats (e.g.,s BTCUSD, BTC_USD, XBT-ZUSD, BTC-USD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our our mapping rules","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING":{"type":"string","description":"The mapped index underlying asset.","x-cc-api-group":"MAPPING"},"QUOTE_CURRENCY":{"type":"string","description":"The mapped to asset quote / counter symbol / coin (e.g. USD), only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency that the contract is settled in (e.g. USD). Only available on instruments that have mapping. ","x-cc-api-group":"MAPPING"},"CONTRACT_CURRENCY":{"type":"string","description":"The currency that the contract size is denominated in (e.g. USD). Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal CCData ID for the index underlying asset (e.g., 1). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the asset quote / counter symbol / coin (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract is settled in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the currency that the contract size is denominated in (e.g. 5). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"STRIKE_CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the strike currency of the contract underlying index. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The open interest ID as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the open interest dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the open interest value was received. This varies (from a few millisconds to a few seconds) from the open interest value taking place on the market / exchange depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp.","x-cc-api-group":"MESSAGE"},"SETTLEMENT":{"type":"number","description":"The total value of outstanding derivatives contracts, given in units of the underlying currency. This will be equal to QUOTE / MARK_PRICE","x-cc-api-group":"MESSAGE"},"MARK_PRICE":{"type":"number","description":"The price at which the perpetual contract will be valued during the trading hours (unrealized pnl and liquidations) = QUOTE / SETTLEMENT","x-cc-api-group":"MESSAGE"},"QUOTE":{"type":"number","description":"The value of outstanding contracts, given in units of the quote currency. This will be equal to SETTLEMENT * MARK_PRICE","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the open interest update (e.g. POLLING, STREAMING, GO, BLOB etc).","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this open interest update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid mesagess for the requested time period. Messages are ordered by CCSEQ, which generally reflects the order of their received timestamps. Any backfilled mesagess that are added later will appear at the end of the array. This ensures a reliable and sequential view of mesagess, including historical corrections. If a mesagess was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid mesagess to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid mesagess from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of mesagess and you can no longer easily guarantee you have received all mesagess","items":{"$ref":"#/components/schemas/OPEN_INTEREST_OPTIONS_INSTRUMENT_UPDATE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"OPTIONS_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"INSTRUMENT_EXTERNAL_DATA":{"type":"string","description":"The full data we get from the polling endpoint for this specific instrument. This is a JSON stringified object with different properties per exchange.","x-cc-api-group":"GENERAL"},"INSTRUMENT_AVAILABLE_ON_INSTRUMENTS_ENDPOINT":{"type":"boolean","description":"This flags the exchange instrument is currently available on instruments endpoint.","default":true,"example":true,"x-cc-api-group":"GENERAL"},"INDEX_ID":{"type":"string","description":"The id of the index the contract is based on.","x-cc-api-group":"GENERAL"},"INDEX_UNDERLYING":{"type":"string","description":"The underlying instrument of the index.","x-cc-api-group":"GENERAL"},"QUOTE_CURRENCY":{"type":"string","description":"The instrument that the contract is priced in.","x-cc-api-group":"GENERAL"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency used to calculate contract PnL. The settlement currency can be different from the index underlying or quote currencies.","x-cc-api-group":"GENERAL"},"CONTRACT_CURRENCY":{"type":"string","description":"The denomination of the CONTRACT_SIZE.","x-cc-api-group":"GENERAL"},"CONTRACT_SIZE":{"type":"number","description":"The contract size - how much of the contract currency does one contract contain.","x-cc-api-group":"GENERAL"},"TICK_SIZE":{"type":"number","description":"The minimum amount the price can move, denominated in QUOTE_CURRENCY","x-cc-api-group":"GENERAL"},"CONTRACT_CREATION_TS":{"type":"number","description":"The contract creation timestamp we get for the specific derivative instrument.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_TS":{"type":"number","description":"The contract expiration timestamp we get for the specific derivative instrument. Not needed for PERPETUAL contract types.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_YEAR":{"type":"number","description":"Year in which the contract expires.","x-cc-api-group":"GENERAL"},"CONTRACT_EXPIRATION_MONTH_CODE":{"type":"string","description":"Month in which the contract expires.","x-cc-api-group":"GENERAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"STRIKE_PRICE":{"type":"number","description":"The strike price.","x-cc-api-group":"GENERAL"},"STRIKE_CURRENCY":{"type":"string","description":"The denomination of the STRIKE_PRICE.","x-cc-api-group":"GENERAL"},"OPTION_TYPE":{"type":"string","description":"The type of option contract.","x-cc-api-group":"GENERAL"},"OPTION_STYLE":{"type":"string","description":"The style of option contract.","x-cc-api-group":"GENERAL"},"BASE_CURRENCY":{"type":"string","description":"The base currency of the contract underlying index.","x-cc-api-group":"GENERAL"},"MIN_TRADE_AMOUNT":{"type":"number","description":"The minimum amount of contracts you can trade.","x-cc-api-group":"GENERAL"},"FIRST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the initial Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"LAST_OB_L2_MINUTE_SNAPSHOT_TS":{"type":"number","description":"Timestamp of the latest Level 2 minute snapshot.","x-cc-api-group":"GENERAL"},"INSTRUMENT_TRADE_OPTIONS_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for TRADE_OPTIONS.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume TRADE_OPTIONS via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_TRADES_OPTIONS":{"type":"number","description":"This is both the CCSEQ and the total TRADES_OPTIONS we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_TRADES_OPTIONS_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from TRADES_OPTIONS all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_TRADE_OPTIONS_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_POLLING":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_POLLING":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_STREAMING":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_STREAMING":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_GO":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_GO":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_BLOB":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_BLOB":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_CALCULATED":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_CALCULATED":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_BACKFILL":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_BACKFILL":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_FIX":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_FIX":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with TRADE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get TRADE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for TRADE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_TRADE_OPTIONS_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get TRADE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_EOD":{"type":"object","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_EOD":{"type":"object","description":"This is the last TRADE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"NUMBER_OF_CONTRACTS":{"type":"number"},"INDEX_PRICE":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_TS":{"type":"number"},"LAST_INDEX_PRICE_UPDATE_NS":{"type":"number"},"QUANTITY":{"type":"number"},"NOTIONAL_QUANTITY":{"type":"number"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"number"},"NOTIONAL_QUOTE_QUANTITY":{"type":"number"},"EXECUTION_CONTEXT":{"type":"object"}},"x-cc-api-group":"SOURCE"},"FIRST_TRADE_OPTIONS_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first TRADE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_TRADE_OPTIONS_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last TRADE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_TRADE_OPTIONS_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper TRADE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OPEN_INTEREST_OPTIONS_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OPEN_INTEREST_OPTIONS_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"This is both the CCSEQ and the total OPEN_INTEREST_OPTIONS_UPDATES we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OPEN_INTEREST_OPTIONS_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OPEN_INTEREST_OPTIONS_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OPEN_INTEREST_OPTIONS_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OPEN_INTEREST_OPTIONS_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OPEN_INTEREST_OPTIONS_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD":{"type":"object","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD":{"type":"object","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"SETTLEMENT":{"type":"number"},"MARK_PRICE":{"type":"number"},"QUOTE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OPEN_INTEREST_OPTIONS_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OPEN_INTEREST_OPTIONS_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OPEN_INTEREST_OPTIONS_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for OB_L2_UPDATE_OPTIONS.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume OB_L2_UPDATE_OPTIONS via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_OB_L2_UPDATES_OPTIONS":{"type":"number","description":"This is both the CCSEQ and the total OB_L2_UPDATES_OPTIONS we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_OB_L2_UPDATES_OPTIONS_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from OB_L2_UPDATES_OPTIONS all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_POLLING":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_POLLING":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_STREAMING":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_STREAMING":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_GO":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_GO":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_BLOB":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_BLOB":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_FIX":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_FIX":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with OB_L2_UPDATE_OPTIONS for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for OB_L2_UPDATE_OPTIONS on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_OB_L2_UPDATE_OPTIONS_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get OB_L2_UPDATE_OPTIONS for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_EOD":{"type":"object","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_EOD":{"type":"object","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"SEQ":{"type":"number"},"SEQ_END":{"type":"number"},"INSTRUMENT":{"type":"string"},"BASE":{"type":"string"},"QUOTE":{"type":"string"},"EXCHANGE_NS":{"type":"number"},"RECEIVED_NS":{"type":"number"},"BIDS":{"type":"array","items":{"type":"string"}},"ASKS":{"type":"array","items":{"type":"string"}},"UNAGGREGATED":{"type":"boolean"},"INDEX_NAME":{"type":"string"},"INDEX_PRICE":{"type":"string"},"INDEX_PRICE_NS":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_OB_L2_UPDATE_OPTIONS_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first OB_L2_UPDATE_OPTIONS that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_OB_L2_UPDATE_OPTIONS_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last OB_L2_UPDATE_OPTIONS that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_OB_L2_UPDATE_OPTIONS_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper OB_L2_UPDATE_OPTIONS data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_POLLING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_STREAMING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_GO":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BLOB":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_CALCULATED":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BACKFILL":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_FIX":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_EOD":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"FIRST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"}}},"OPTIONS_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_METADATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"OPTIONS_EXCHANGE_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_OPTIONS":{"type":"integer","description":"The total number of options trades that this exchange has processed.","example":906669,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"integer","description":"The total number of options open interest updates that this exchange has processed.","example":722895,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"OPTIONS_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for options trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"OPTIONS_EXERCISE_STYLES":{"type":"array","description":"Methods allowed for exercising options positions.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the exercise style"}}},"x-cc-api-group":"BASIC"},"OPTIONS_SETTLEMENT_TYPES":{"type":"array","description":"How are options positions settled.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the settlement type"}}},"x-cc-api-group":"BASIC"},"OPTIONS_EXPIRY_INTERVALS":{"type":"array","description":"What variety of expiry date intervals is offered for options instruments on the exchange. An exchange may offer different expiry intervals for different underlying assets.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The options contract term"}}},"x-cc-api-group":"BASIC"},"OPTIONS_STRIKE_INTERVAL_METHODS":{"type":"array","description":"Defines how exchanges determine the spacing between individual strike prices within the available range.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The strike interval method"}}},"x-cc-api-group":"BASIC"},"OPTIONS_STRIKE_BOUNDARY_METHODS":{"type":"array","description":"Defines the methodology exchanges use to determine how far from the current price they will list option strikes.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The strike boundary method"}}},"x-cc-api-group":"BASIC"},"OPTIONS_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Options API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, allowing for controlled API access and streamlined role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"OPTIONS_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the options integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"OPTIONS_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"}}},"OPTIONS_EXCHANGE_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPTIONS_EXCHANGE_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"OPTIONS_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_TRADES_OPTIONS":{"type":"integer","description":"The total number of options trades that this exchange has processed.","example":906669,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"integer","description":"The total number of options open interest updates that this exchange has processed.","example":722895,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"OPTIONS_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for options trading on the exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"OPTIONS_EXERCISE_STYLES":{"type":"array","description":"Methods allowed for exercising options positions.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the exercise style"}}},"x-cc-api-group":"BASIC"},"OPTIONS_SETTLEMENT_TYPES":{"type":"array","description":"How are options positions settled.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the settlement type"}}},"x-cc-api-group":"BASIC"},"OPTIONS_EXPIRY_INTERVALS":{"type":"array","description":"What variety of expiry date intervals is offered for options instruments on the exchange. An exchange may offer different expiry intervals for different underlying assets.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The options contract term"}}},"x-cc-api-group":"BASIC"},"OPTIONS_STRIKE_INTERVAL_METHODS":{"type":"array","description":"Defines how exchanges determine the spacing between individual strike prices within the available range.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The strike interval method"}}},"x-cc-api-group":"BASIC"},"OPTIONS_STRIKE_BOUNDARY_METHODS":{"type":"array","description":"Defines the methodology exchanges use to determine how far from the current price they will list option strikes.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The strike boundary method"}}},"x-cc-api-group":"BASIC"},"OPTIONS_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the Options API. This configuration restricts Data API access to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with designated role names and permissions, allowing for controlled API access and streamlined role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"OPTIONS_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the options integration, this is used by both the order book team and the nodejs team.","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"OPTIONS_TRADES_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_TRADES_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_POLLING_BACKFILL":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_TRADES_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_ORDER_BOOK_INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process","x-cc-api-group":"INTEGRATION_OPTIONS"},"OPTIONS_ORDER_BOOK_INTEGRATION_DATE":{"type":"number","description":"The integration date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_ORDER_BOOK_POLLING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"HAS_OPTIONS_ORDER_BOOK_STREAMING":{"type":"boolean","description":"","x-cc-api-group":"INTEGRATION_OPTIONS"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"INDEX_UNDERLYING":{"type":"string","description":"The underlying instrument for the index. This can be used with the index endpoint to retrieve values and additional information. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"BTC"},"QUOTE_CURRENCY":{"type":"string","description":"The asset in which the contract is priced.","example":"USD"},"SETTLEMENT_CURRENCY":{"type":"string","description":"The currency used to calculate the contract's PnL. The settlement currency may differ from the index's underlying or quote currencies. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"USD"},"CONTRACT_CURRENCY":{"type":"string","description":"The asset in which the CONTRACT_SIZE is denominated. This symbol may change if the asset undergoes a rebrand or if a more dominant asset starts trading under the same symbol.","example":"BTC"},"STRIKE_CURRENCY":{"type":"string","description":"The asset used as the strike for the contract's underlying index.","example":"BTC"},"INDEX_UNDERLYING_ID":{"type":"number","description":"Represents the internal underlying asset ID of the index. This ID is static and will never change.","example":1},"QUOTE_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID that the contract is priced in. This ID is static and will never change.","example":5},"SETTLEMENT_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID used to calculate contract PnL. The settlement asset can be different from the index underlying or quote currencies. This ID is static and will never change.","example":5},"CONTRACT_CURRENCY_ID":{"type":"number","description":"Represents the internal asset ID of the denomination of the CONTRACT_SIZE. This ID is static and will never change.","example":1},"STRIKE_CURRENCY_ID":{"type":"string","description":"Represents the internal ID of the denomination of the CONTRACT_SIZE. This ID is static and will never change.","example":1},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"HAS_TRADES_OPTIONS":{"type":"boolean","description":"A boolean flag indicating whether the instrument has options trades or not. ","example":true},"HAS_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"boolean","description":"A boolean flag indicating whether the instrument has options open interest updates or not. ","example":true},"FIRST_TRADE_OPTIONS_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed options trade for this instrument. This timestamp represents the earliest options trade recorded. Rare updates may occur, and backfilled data can take up to 1 hour to reflect on the API.","example":1677283205,"format":"unix_timestamp"},"FIRST_OPEN_INTEREST_OPTIONS_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed options open interest update for this instrument. This represents the earliest recorded value for open interest. Updates are rare and backfilled data may take up to 1 hour to appear on the API.","example":1677283205,"format":"unix_timestamp"},"LAST_TRADE_OPTIONS_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last options trade observed for this instrument. This timestamp represents when the most recent options trade was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the options trades by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"LAST_OPEN_INTEREST_OPTIONS_UPDATE_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last options open interest update observed for this instrument. This timestamp represents when the most recent options open interest update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the options open interest updates by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"TOTAL_TRADES_OPTIONS":{"type":"number","description":"The total number of options trades processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":906669},"TOTAL_OPEN_INTEREST_OPTIONS_UPDATES":{"type":"number","description":"The total number of options open interest updates processed for this instrument by this specific exchange. This represents the cumulative updates handled by our system.","example":722895},"CONTRACT_EXPIRATION_TS":{"type":"number","description":"The contract expiration timestamp we get for the specific derivative instrument. Not needed for PERPETUAL contract types.","example":1681914057},"OPTION_TYPE":{"type":"string","description":"The type of option contract.","example":"CALL"},"STRIKE_PRICE":{"type":"number","description":"The strike price.","example":2500}}}}}}},"OPTIONS_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/OPTIONS_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"INDEX_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange you have requested (name of the market / exchange e.g. coinbase, kraken, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID, derived from our mapping rules. Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"CURRENCY":{"type":"string","description":"The mapped index currency, e.g. BTC. Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the mapped index currency, e.g. 1. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"VALUE":{"type":"number","description":"The value of the index.","x-cc-api-group":"VALUE"},"VALUE_FLAG":{"type":"string","description":"The flag indicating if the value has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one of the last update that had an impact on the value.","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanosecond part of the timestamp as reported by the market / exchange or the nanosecond part of the received timestamp if the market / exchange does not provide one of the last update that had an impact on the value.","x-cc-api-group":"VALUE"},"LAST_UPDATE_ID":{"type":"string","description":"The ID of the last message update","x-cc-api-group":"LAST_UPDATE"},"LAST_UPDATE_CCSEQ":{"type":"number","description":"The CCSEQ of the last message update","x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open value for the current hour, this is based on the closest update before the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest value between the open and the highest update value in the current hour. The same as open when there no update in the time period.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest value between the open and the lowest update value in the current hour. The same as open when there no update in the time period.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total updates since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the CURRENT_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open value for the current day, this is based on the closest update before the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest value between the open and the highest update value in the current day (00:00:00 GMT/UTC). The same as open when there no updates in the time period.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest value between the open and the lowest update value in the current day (00:00:00 GMT/UTC). The same as open when there no updates in the time period.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total updates since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The value of the closest update to Monday (00:00:00 GMT/UTC) of this week. This would be, in a highly liquid market, the last update that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest value between the CURRENT_WEEK_OPEN and the highest update value of the week excluding the current day (Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week). If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest value between the CURRENT_WEEK_OPEN and the lowest update value of the week excluding the current day (Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week). If today is Monday, this value will be CURRENT_WEEK_OPEN.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The value of the closest update to the 1st day (00:00:00 GMT/UTC) of this month. This would be, in a highly liquid market, the last update that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest value between the CURRENT_MONTH_OPEN and the highest update value of the month excluding the current day (1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month). If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest value between the CURRENT_MONTH_OPEN and the lowest update value of the month excluding the current day (1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month). If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of trades between 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The value of the closest trade to the 1st of January (00:00:00 GMT/UTC) of this year. This would be, in a highly liquid market, the last update that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest value between the CURRENT_YEAR_OPEN and the highest update value of the year excluding the current day (1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year). If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest value between the CURRENT_YEAR_OPEN and the lowest update value of the year excluding the current day (1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year). If today is the 1st of January, this value will be CURRENT_YEAR_OPEN.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The value of the closest update to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest value between the MOVING_24_HOUR_OPEN and the highest update value of the period - from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest value between the MOVING_24_HOUR_OPEN and the lowest update value of the period - from 24 hours ago up to the beginning of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 24 hours ago and the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date (6 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 7 day value.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_7_DAY_OPEN and the highest update value of the period - from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest value between the MOVING_7_DAY_OPEN and the lowest update value of the period - from 7 days ago up to the beginning of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 7 days ago and the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date (29 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 30 day value.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_30_DAY_OPEN and the highest update value of the period - from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest value between the MOVING_30_DAY_OPEN and the lowest update value of the period - from 30 days ago up to the beginning of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 30 days ago and the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date (89 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 90 day value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_90_DAY_OPEN and the highest update value of the period - from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest value between the MOVING_90_DAY_OPEN and the lowest update value of the period - from 90 days ago up to the beginning of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 90 days ago and the beginning (00:00:00 GMT/UTC) of the current day (89 days in total). To get the total 90 day value add CURRENT_DAY_TOTAL_INDEX_UPDATES to this value.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date (179 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 180 day value.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_180_DAY_OPEN and the highest update value of the period - from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest value between the MOVING_180_DAY_OPEN and the lowest update value of the period - from 180 days ago up to the beginning of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 180 days ago and the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The value of the closest update to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_365_DAY_OPEN and the highest update value of the period - from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest value between the MOVING_365_DAY_OPEN and the lowest update value of the period - from 365 days ago up to the beginning of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of updates between 365 days ago and the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_UPDATE_TS":{"type":"number","description":"The timestamp of the first update we have ever seen on the instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The value of the first update of the instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The value of the highest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The value of the lowest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest update ever executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_INDEX_UPDATES":{"type":"number","description":"The total count of all updates that have ever been executed on this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"INDEX_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_MARKET_DATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"INDEX_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for minute it would be every minute at the beginning of the minute, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC"},"TYPE":{"type":"string","description":"Type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange you have requested (name of the market / exchange e.g. bitmex, deribit, ftx, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument ID, as derived from our mapping rules. Only available on instruments that have been mapped.","x-cc-api-group":"MAPPING"},"CURRENCY":{"type":"string","description":"The mapped index currency. Only available on instruments that have mapping.","x-cc-api-group":"MAPPING"},"CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the mapped index currency, e.g. 1. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN":{"type":"number","description":"The open value for the historical period, this is based on the closest index update before the period start","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The max between the open and the highest index update value in this time period (same as open when there no messages in the time period).","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The min between the open and the lowest index update value in this time period (same as open when there no messages in the time period).","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The value of the last index update in this time period (same as open when there no messages in the time period).","x-cc-api-group":"OHLC"},"FIRST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the first index update in this time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the last index update in this time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"FIRST_MESSAGE_VALUE":{"type":"number","description":"The open based on the first index update in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_VALUE":{"type":"number","description":"The highest value of the messages in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"HIGH_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the highest index update in this time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_VALUE":{"type":"number","description":"The lowest value of the messages in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LOW_MESSAGE_TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the lowest index update in this time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"LAST_MESSAGE_VALUE":{"type":"number","description":"The last index update value in the time period (only available when we have at least one index update in the time period).","x-cc-api-group":"OHLC_MESSAGE"},"TOTAL_INDEX_UPDATES":{"type":"number","description":"The total number of message updates seen in this time period (0 when there no messages in the time period).","x-cc-api-group":"MESSAGE"}}},"INDEX_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"INDEX_INSTRUMENT_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange or index code you have requested (name of the market / exchange e.g. Coinbase, Kraken, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange or generated internally by us for an index, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This takes the form: \"BASE-QUOTE\" and is available only for instruments that have been mapped (e.g. BTC-USD).","example":"BTC-USD","x-cc-api-group":"MAPPING"},"CURRENCY":{"type":"string","description":"The mapped index currency. Only available on instruments that have been mapped (e.g. BTC).","example":"USD","x-cc-api-group":"MAPPING"},"CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the mapped index currency, e.g. 1. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The index id as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the index dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when we received the index value. This varies from a few millisconds from the index value taking place on the market / exchange to a few seconds depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp, only available for a subset of markets / exchanges","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The value of the index","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the index update: POLLING, STREAMING, GO, BLOB etc.","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this index update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"INDEX_INSTRUMENT_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid index updates for the requested time period. Index updates are ordered by CCSEQ, which generally reflects the order of their calculation. Any backfilled index updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of index updates data, including historical corrections. If an index update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid index updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid index updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of each index update and you can no longer easily guarantee you have received all the index updates.","items":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_UPDATE"}},"Err":{"type":"object","properties":{}}}},"INDEX_INSTRUMENT_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange or index code you have requested (name of the market / exchange e.g. Coinbase, Kraken, etc.)","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The original unmapped instrument ID as provided by the exchange or generated internally by us for an index, which can have various formats (e.g., BTC-USD, BTCUSD, BTC_USD, XBT-ZUSD).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This takes the form: \"BASE-QUOTE\" and is available only for instruments that have been mapped (e.g. BTC-USD).","example":"BTC-USD","x-cc-api-group":"MAPPING"},"CURRENCY":{"type":"string","description":"The mapped index currency. Only available on instruments that have been mapped (e.g. BTC).","example":"USD","x-cc-api-group":"MAPPING"},"CURRENCY_ID":{"type":"number","description":"Represents the internal CCData ID for the mapped index currency, e.g. 1. This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function. This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"ID":{"type":"string","description":"The index id as reported by the market / exchange or the timestamp in seconds / millisconds / nanoseconds depending on the index dissemination frequency.","x-cc-api-group":"MESSAGE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds when we received the index value. This varies from a few millisconds from the index value taking place on the market / exchange to a few seconds depending on the market / exchange API options / rate limits","format":"unix_timestamp","x-cc-api-group":"MESSAGE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the received timestamp, only available for a subset of markets / exchanges","x-cc-api-group":"MESSAGE"},"VALUE":{"type":"number","description":"The value of the index","x-cc-api-group":"MESSAGE"},"SOURCE":{"type":"string","description":"The source of the index update: POLLING, STREAMING, GO, BLOB etc.","x-cc-api-group":"MESSAGE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this index update, this is unique per market / exchange and instrument. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"MESSAGE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"INDEX_INSTRUMENT_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid index updates for the requested time period. Index updates are ordered by CCSEQ, which generally reflects the order of their calculation timestamps. Any backfilled index updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of index update data, including historical corrections. If an index update was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid index updates in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_UPDATE_DEPRECATED"}},"Err":{"type":"object","properties":{}}}},"INDEX_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"INSTRUMENT_EXTERNAL_DATA":{"type":"string","description":"The full data we get from the polling endpoint for this specific instrument. This is a JSON stringified object with different properties per exchange.","x-cc-api-group":"GENERAL"},"INSTRUMENT_AVAILABLE_ON_INSTRUMENTS_ENDPOINT":{"type":"boolean","description":"This flags the exchange instrument is currently available on instruments endpoint.","default":true,"example":true,"x-cc-api-group":"GENERAL"},"INDEX_UNDERLYING":{"type":"string","description":"The underlying instrument of the index.","x-cc-api-group":"GENERAL"},"TICK_SIZE":{"type":"number","description":"The minimum amount the price can move, denominated in QUOTE_CURRENCY","x-cc-api-group":"GENERAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"INSTRUMENT_INDEX_UPDATE_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for INDEX_UPDATE.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume INDEX_UPDATE via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"LAST_CONCURRENT_BATCH_OF_INDEX_UPDATES_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from INDEX_UPDATES all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_INDEX_UPDATE_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_POLLING":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_POLLING":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_STREAMING":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_GO":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_GO":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_BLOB":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_BLOB":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_BACKFILL":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_FIX":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_FIX":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with INDEX_UPDATE for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get INDEX_UPDATE for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for INDEX_UPDATE on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_INDEX_UPDATE_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get INDEX_UPDATE for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_EOD":{"type":"object","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_EOD":{"type":"object","description":"This is the last INDEX_UPDATE that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"INSTRUMENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"VALUE":{"type":"number"}},"x-cc-api-group":"SOURCE"},"FIRST_INDEX_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first INDEX_UPDATE that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_INDEX_UPDATE_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last INDEX_UPDATE that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_INDEX_UPDATE_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper INDEX_UPDATE data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_POLLING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_STREAMING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_GO":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BLOB":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_CALCULATED":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BACKFILL":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_FIX":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_EOD":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"FIRST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"}}},"INDEX_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_METADATA"}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"INDEX_EXCHANGE_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"}}},"INDEX_EXCHANGE_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_EXCHANGE_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"INDEX_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"0":{"type":"string"},"1":{"type":"string"},"2":{"type":"string"},"3":{"type":"string"},"4":{"type":"string"},"5":{"type":"string"},"6":{"type":"string"}}},"INDEX_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/INDEX_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_MARKET_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The type of message this is. It helps identify the nature of the data being returned.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. coinbase, kraken, etc).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument ID, this takes the form of the smart contract address and the chain ID it exists on separated by an underscore.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument id based on asset symbols, as derived from our mapping rules. This is the same as the INSTRUMENT and will not change.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function (or list of functions concatenated by _AND_). This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all chains and instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update. This is unique per market / exchange and trading pair / instrument. It will always be increasing by 1 for each new tick update we send.","x-cc-api-group":"VALUE"},"PRICE":{"type":"number","description":"The price in terms of the quote instrument of the swap. For a WETH-USDT swap, this is how much was swapped for one WETH in USDT.","x-cc-api-group":"VALUE"},"PRICE_FLAG":{"type":"string","description":"The flag indicating whether the price has increased, decreased, or not changed","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds as reported by the market / exchange. If the market /exchange does not provide this information, the received timestamp will be returned.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp as reported by the market / exchange. If the market /exchange does not provide this information, the nanoseconds part of the received timestamp will be returned.","x-cc-api-group":"VALUE"},"PRICE_LAST_UPDATE_BLOCK_NUMBER":{"type":"number","description":"The block number as reported by the market / exchange. If the market /exchange does not provide this information, the received timestamp will be returned.","x-cc-api-group":"VALUE"},"LAST_SWAP_QUANTITY":{"type":"string","description":"The quantity of the latest swap in the from symbol (base / coin).","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_QUOTE_QUANTITY":{"type":"string","description":"The volume of the latest swap in the to asset / quote.","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_ID":{"type":"string","description":"The ID of the latest swap.","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_CCSEQ":{"type":"string","description":"The CCSEQ of the latest swap.","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_SIDE":{"type":"string","description":"The side of the latest swap.","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the latest swap.","x-cc-api-group":"LAST_UPDATE"},"LAST_SWAP_FROM":{"type":"string","description":"The from (sender) address of the latest swap.","x-cc-api-group":"LAST_UPDATE"},"LAST_PROCESSED_SWAP_TS":{"type":"number","description":"The timestamp in seconds that the last swap was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the timestamp that the swap was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_TS_NS":{"type":"number","description":"The nanoseconds part of the timestamp that the last swap was processed, as reported by the market / exchange. If the market / exchange does not provide this information, the nanoseconds part of the timestamp that the swap was received will be returned.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_PRICE":{"type":"number","description":"The price in the quote asset of the last swap processed, as reported by the market / exchange.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_QUANTITY":{"type":"string","description":"The quantity of the last processed swap in the from symbol (base / coin).","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_QUOTE_QUANTITY":{"type":"string","description":"The  volume of the last processed swap in the to asset / quote.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_SIDE":{"type":"string","description":"The side of the last processed swap.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_CCSEQ":{"type":"string","description":"The CCSEQ of the latest swap.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the latest swap.","x-cc-api-group":"LAST_PROCESSED"},"LAST_PROCESSED_SWAP_FROM":{"type":"string","description":"The from (sender) address of the latest swap.","x-cc-api-group":"LAST_PROCESSED"},"CURRENT_HOUR_VOLUME":{"type":"string","description":"The sum of all swap quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all swap quote quantities from the start of the current hour until now. Given in the base asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from the start of the current hour until now. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The open price for the current hour, this is based on the closest swap occurring before the start of the current hour. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest swap price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest swap price of the current hour. If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap since the start of the current hour.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE":{"type":"number","description":"The value change from the CURRENT_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the base asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from the start of the current day (00:00:00 GMT/UTC) until now. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_OPEN":{"type":"number","description":"The open price for the current day, this is based on the closest swap occurring before the start of the current day (00:00:00 GMT/UTC). Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest swap price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest swap price of the current day (00:00:00 GMT/UTC). If there were no updates in the time period, the open price will be given. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap since the start of the current day (00:00:00 GMT/UTC).","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE":{"type":"number","description":"The value change from the CURRENT_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_DAY"},"CURRENT_WEEK_VOLUME":{"type":"string","description":"The sum of all swap quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from Monday (00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_OPEN":{"type":"number","description":"The price of the closest swap to Monday (00:00:00 GMT/UTC) of this week. In a highly liquid market, this would be the last swap that happened on the previous Sunday at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full weekly value. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_HIGH":{"type":"number","description":"The highest swapped price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be the same as CURRENT_WEEK_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_LOW":{"type":"number","description":"The lowest swapped price of the week excluding the current day. The period will run from Monday - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the week. If today is Monday, this value will be CURRENT_WEEK_LOW. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_SWAPS":{"type":"number","description":"The total number of swap between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap between Monday (00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the week. If today is Monday, this value will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE":{"type":"number","description":"The value change from the CURRENT_WEEK. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_WEEK_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_WEEK. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_WEEK"},"CURRENT_MONTH_VOLUME":{"type":"string","description":"The sum of all swap quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the first of the month, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_OPEN":{"type":"number","description":"The price of the closest swap to the 1st day (00:00:00 GMT/UTC) of this month. In a highly liquid market, this would be the last swap that happened on the previous month at (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full monthly value. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_HIGH":{"type":"number","description":"The highest swapped price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_LOW":{"type":"number","description":"The lowest swapped price of the month excluding the current day. The period will run from the 1st of the month - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the month. If today is the 1st of the month, this value will be CURRENT_MONTH_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_SWAPS":{"type":"number","description":"The total number of swap between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap between the 1st of the month (xxxx:xx:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the month. If today is the 1st of the month, this value will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE":{"type":"number","description":"The value change from the CURRENT_MONTH. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_MONTH_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_MONTH. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_MONTH"},"CURRENT_YEAR_VOLUME":{"type":"string","description":"The sum of all swap quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the base asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) to the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_OPEN":{"type":"number","description":"The price of the closest swap to the 1st of January (00:00:00 GMT/UTC) of this year. In a highly liquid market, this would be the last swap that happened on on the 31st of December of the previous year (23:59:59 999 GMT/UTC). This will always be supplied and there is no need to do any calculation to get the full yearly value. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_HIGH":{"type":"number","description":"The highest swapped price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_LOW":{"type":"number","description":"The lowest swapped price of the year excluding the current day. The period runs from the 1st of January - 00:00:00 GMT/UTC to the beginning - 00:00:00 GMT/UTC of the current day of the year. If today is the 1st of January, this value will be CURRENT_YEAR_OPEN. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_SWAPS":{"type":"number","description":"The total number of swap between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap between the 1st of January (xxxx:01:01 00:00:00 GMT/UTC) and the beginning (00:00:00 GMT/UTC) of the current day of the year. If today is the 1st of January, this value will be 0.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE":{"type":"number","description":"The value change from the CURRENT_YEAR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"CURRENT_YEAR"},"CURRENT_YEAR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the CURRENT_YEAR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"CURRENT_YEAR"},"MOVING_24_HOUR_VOLUME":{"type":"string","description":"The sum of all swap quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the base asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (23 hours + current hour ago). This will always be supplied and there is no need to do any calculation to get the full 24 hour value. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest swapped price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 24 hours ago up to the beginning of the current hour (23 hours in total). Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred in the period running from 24 hours ago to the beginning (xx:00:00) of the current hour (23 hours in total).","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE":{"type":"number","description":"The value change from the MOVING_24_HOUR. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_24_HOUR. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_24_HOUR"},"MOVING_7_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the base asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (6 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 7 day value. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_HIGH":{"type":"number","description":"The highest swapped price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 7 days ago up to the beginning of the current day (6 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred in the period running from 7 days ago to the beginning (00:00:00 GMT/UTC) of the current day (6 days in total).","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_7_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_7_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_7_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_7_DAY"},"MOVING_30_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the base asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (29 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 30 day value. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_HIGH":{"type":"number","description":"The highest swapped price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 30 days ago up to the beginning of the current day (29 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred in the period running from 30 days ago to the beginning (00:00:00 GMT/UTC) of the current day (29 days in total).","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_30_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_30_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_30_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_30_DAY"},"MOVING_90_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all swap quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the base asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (89 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 90 day value. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_HIGH":{"type":"number","description":"The highest value between the MOVING_90_DAY_OPEN and the highest swapped price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 90 days ago up to the beginning of the current day (89 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred in the period running from 90 days ago to the beginning (00:00:00 GMT/UTC) of the current day (89 days in total).","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_90_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_90_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_90_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_90_DAY"},"MOVING_180_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all swap quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the base asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (179 days + current day - 00:00:00 GMT/UTC to now). This will always be supplied and there is no need to do any calculation to get the full 180 day value. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_HIGH":{"type":"number","description":"The  highest swapped price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 180 days ago up to the beginning of the current day (179 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred in the period from 180 days ago to the beginning (00:00:00 GMT/UTC) of the current day (179 days in total).","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_180_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_180_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_180_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_180_DAY"},"MOVING_365_DAY_VOLUME":{"type":"string","description":"The sum of all swap quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_BUY":{"type":"string","description":"The sum of all swap quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the base asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_OPEN":{"type":"number","description":"The price of the closest swap to the period start date (364 days + current day - 00:00:00 GMT/UTC to now).  This will always be supplied and there is no need to do any calculation to get the full 365 day value. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_HIGH":{"type":"number","description":"The highest price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_LOW":{"type":"number","description":"The lowest swapped price of the period. Here, the period runs from 365 days ago up to the beginning of the current day (364 days in total). Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_SWAPS":{"type":"number","description":"The total number of swap that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of buy swap that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of sell swap that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of unknown swap that have occurred during the period running from 365 days ago to the beginning (00:00:00 GMT/UTC) of the current day (364 days in total).","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE":{"type":"number","description":"The value change from the MOVING_365_DAY. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"MOVING_365_DAY"},"MOVING_365_DAY_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the MOVING_365_DAY. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"MOVING_365_DAY"},"LIFETIME_FIRST_SWAP_TS":{"type":"number","description":"The timestamp of the first swap ever recorded for the instrument","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME":{"type":"string","description":"The sum of all swap quantities of all the swap of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quantities of all the swap of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quantities of all the swap of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quantities of all the swap of this instrument. Given in the base asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME":{"type":"string","description":"The sum of all swap quote quantities of all the swap of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all buy swap quote quantities of all the swap of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all sell swap quote quantities of all the swap of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all unknown swap quote quantities of all the swap of this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_OPEN":{"type":"number","description":"The price of the first swap of the instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH":{"type":"number","description":"The price of the highest swap ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_HIGH_TS":{"type":"number","description":"The the timestamp of the highest swap ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW":{"type":"number","description":"The price of the lowest swap ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_LOW_TS":{"type":"number","description":"The timestamp of the lowest swap ever executed for this instrument. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_SWAPS":{"type":"number","description":"The total number of all swap that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of all buy swap that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of all sell swap that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of all unknown swap that have ever been executed for this instrument.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE":{"type":"number","description":"The value change from the LIFETIME. If there were no updates in the time period, the value change will be 0. Given in the quote asset.","x-cc-api-group":"LIFETIME"},"LIFETIME_CHANGE_PERCENTAGE":{"type":"number","description":"The percentage change from the LIFETIME. If there were no updates in the time period, the percentage change will be 0.","x-cc-api-group":"LIFETIME"}}},"ONCHAIN_AMM_INSTRUMENT_MARKET_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_MARKET_DATA"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ONCHAIN_AMM_INSTRUMENT_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: MINUTE for minute, HOUR for hour and DAY for day."},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds of the beginning of the histo period. For minute it would be every minute at the beginning of the minute, for hour it would be the start of the hour and for daily it is 00:00 GMT.","format":"unix_timestamp"},"TYPE":{"type":"string","description":"The internal type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (uniswapv2, uniswapv3 etc.).","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument address and the CHAIN_ASSET ID separated by underscore (e.g. 0xe83c76c50033a5396d21ceff9fa192e2550d10ca_2, etc.).","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument id based on asset symbols, as derived from our mapping rules. This is the same as the INSTRUMENT and will not change.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g., BTC). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g., USD). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function (or list of functions concatenated by _AND_). This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all chains and instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"OPEN":{"type":"number","description":"The open price for the historical period, this is based on the closest swap before the period start.","x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest swap price in the time period. If there were no swaps in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest swap price in the time period. If there were no swaps in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The price of the last swap in this time period. If there were no swaps in the time period, the open price will be given.","x-cc-api-group":"OHLC"},"FIRST_SWAP_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the first swap in this time period. This is only available when there is at least one swap in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_SWAP"},"FIRST_SWAP_BLOCK":{"type":"number","description":"The block of the first swap in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"LAST_SWAP_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the last swap in this time period. This is only available when there is at least one swap in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_SWAP"},"LAST_SWAP_BLOCK":{"type":"number","description":"The block of the last swap in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"FIRST_SWAP_PRICE":{"type":"number","description":"The price of the first swap in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"HIGH_SWAP_PRICE":{"type":"number","description":"The highest value of the swaps in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"HIGH_SWAP_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the highest swap in the time period. This is only available when there is at least one swap in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_SWAP"},"HIGH_SWAP_BLOCK":{"type":"number","description":"The block of the highest swap in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"LOW_SWAP_PRICE":{"type":"number","description":"The lowest value of the swaps in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"LOW_SWAP_TIMESTAMP":{"type":"integer","description":"The timestamp, in seconds, of the lowest swap in the time period. This is only available when there is at least one swap in the time period.","format":"unix_timestamp","x-cc-api-group":"OHLC_SWAP"},"LOW_SWAP_BLOCK":{"type":"number","description":"The block of the lowest swap in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"LAST_SWAP_PRICE":{"type":"number","description":"The last swap price in the time period. This is only available when there is at least one swap in the time period.","x-cc-api-group":"OHLC_SWAP"},"TOTAL_SWAPS":{"type":"number","description":"The total number of swaps seen in this time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"SWAP"},"TOTAL_SWAPS_BUY":{"type":"number","description":"The total number of BUY swaps seen in this time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"SWAP"},"TOTAL_SWAPS_SELL":{"type":"number","description":"The total number of SELL swaps seen in this time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"SWAP"},"TOTAL_SWAPS_UNKNOWN":{"type":"number","description":"The total number of UNKNOWN swaps seen in this time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"SWAP"},"VOLUME":{"type":"string","description":"The sum of all the swap volumes in the from asset (base symbol / coin) for the time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME":{"type":"string","description":"The sum of all the swap volumes in the To asset (quote/counter symbol/coin) for the time period. If there were no swaps in the time period, 0 will be returned.","x-cc-api-group":"VOLUME"},"VOLUME_BUY":{"type":"string","description":"The sum of all the BUY swap volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_BUY":{"type":"string","description":"The sum of all the BUY swap volumes in the to asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_SELL":{"type":"string","description":"The sum of all the SELL swap volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_SELL":{"type":"string","description":"The sum of all the SELL swap volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"},"VOLUME_UNKNOWN":{"type":"string","description":"The sum of all the UNKNOWN swap volumes in the from asset (base symbol / coin) for the time period.","x-cc-api-group":"VOLUME"},"QUOTE_VOLUME_UNKNOWN":{"type":"string","description":"The sum of all the UNKNOWN swap volumes in the To asset (quote/counter symbol/coin) for the time period.","x-cc-api-group":"VOLUME"}}},"ONCHAIN_AMM_INSTRUMENT_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_HISTO_DATA"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The internal type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. uniswapv2, uniswapv3 etc.).","x-cc-api-group":"ID"},"CHAIN_ASSET":{"type":"number","description":"The asset id for the source chain, eg 2 for ETH.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument address and the CHAIN_ASSET separated by underscore (e.g. 0xe83c76c50033a5396d21ceff9fa192e2550d10ca_2, etc.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument id based on asset symbols, as derived from our mapping rules. This is the same as the INSTRUMENT and will not change.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g. WETH). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g. USDT). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function (or list of functions concatenated by _AND_). This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all chains and instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. If the exchange / api does not provide a side, \"UNKNOWN\" will be returned.","x-cc-api-group":"SWAP"},"ID":{"type":"string","description":"The unique ID of the swap - constructed by appending the transaction hash and the transaction log index where the swap was discovered.","x-cc-api-group":"SWAP"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds derived from the block time in which the transaction was found.","format":"unix_timestamp","x-cc-api-group":"SWAP"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported TIMESTAMP field.","x-cc-api-group":"SWAP"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the transaction was processed by the integration internally.","format":"unix_timestamp","x-cc-api-group":"SWAP"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","x-cc-api-group":"SWAP"},"QUANTITY":{"type":"string","description":"The volume of the trade, given in the base instrument. E.g. for a dex WETH-USDT swap, this is how much WETH was swapped at the trade price.","x-cc-api-group":"SWAP"},"PRICE":{"type":"number","description":"The price in terms of the quote instrument of the swap. For a WETH-USDT swap, this is how much was swapped for one WETH in USDT.","x-cc-api-group":"SWAP"},"QUOTE_QUANTITY":{"type":"string","description":"The volume of the trade, given in the quote instrument. This is equivalent to QUANTITY * PRICE. (E.g. for a WETH-USDT trade, this is how much USDT was traded in total for the volume of WETH swapped.).","x-cc-api-group":"SWAP"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc. Used internally","x-cc-api-group":"SWAP"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this trade, this is unique per market / exchange and trading pair. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"SWAP"},"TRANSACTION_HASH":{"type":"string","description":"This is a unique cryptographic identifier that represents the specific transaction on the blockchain where the swap was discovered","x-cc-api-group":"SWAP"},"BLOCK_NUMBER":{"type":"number","description":"This represents the specific block on the blockchain where the swap was discovered.","x-cc-api-group":"SWAP"},"FROM":{"type":"string","description":"The address of the wallet who initiated the swap.","x-cc-api-group":"SWAP"},"MARKET_FEE_PERCENTAGE":{"type":"number","description":"The trading fee (in percentage) charged for each transaction that occurs for this instrument on the exchange","x-cc-api-group":"SWAP"},"MARKET_FEE_VALUE":{"type":"string","description":"The trading fee charged for this transaction, calculated using the market fee percentage and quantity/quote_quantity based on whether it is a buy or a sell. In uniswapv2/v3 the fee is calculated from the input instrument wrt the pool. (E.g. if it is a BUY, the input instrument is the QUOTE, if it is a sell - the input instrument is the BASE.)","x-cc-api-group":"SWAP"},"PROVIDER_KEY":{"type":"string","description":"The data source for the onchain data: internal_geth, quicknode, infura, etc.","x-cc-api-group":"SWAP"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid amm swaps for the requested time period. Amm swaps are ordered by CCSEQ, which generally reflects the order of their calculation timestamps. Any backfilled amm swaps that are added later will appear at the end of the array. This ensures a reliable and sequential view of amm swap data, including historical corrections. If an amm swap was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid amm swaps in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ERROR_ONCHAIN_AMM_INSTRUMENT_SWAP_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"Data":{"type":"array","items":{"type":"object","properties":{}},"default":[]},"Invalid":{"type":"array","items":{"type":"object","properties":{}},"default":[]},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ONCHAIN_AMM_INSTRUMENT_SWAP":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The internal type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. uniswapv2, uniswapv3 etc.).","x-cc-api-group":"ID"},"CHAIN_ASSET":{"type":"number","description":"The asset id for the source chain, eg 2 for ETH.","x-cc-api-group":"ID"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument address and the CHAIN_ASSET separated by underscore (e.g. 0xe83c76c50033a5396d21ceff9fa192e2550d10ca_2, etc.","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The instrument id based on asset symbols, as derived from our mapping rules. This is the same as the INSTRUMENT and will not change.","x-cc-api-group":"MAPPING"},"BASE":{"type":"string","description":"Represents the base asset or coin symbol, commonly known as the ticker (e.g. WETH). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping","x-cc-api-group":"MAPPING"},"QUOTE":{"type":"string","description":"Represents the quote asset or counter coin symbol, commonly known as the ticker (e.g. USDT). This symbol may change in cases of asset rebranding. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING"},"BASE_ID":{"type":"number","description":"Represents the internal CCData ID for the base asset or coin (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"QUOTE_ID":{"type":"number","description":"Represents the internal CCData ID for the quote asset or counter coin (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","x-cc-api-group":"MAPPING_ADVANCED"},"TRANSFORM_FUNCTION":{"type":"string","description":"The transform function (or list of functions concatenated by _AND_). This is the function we apply when we do mapping to change values into easier human readable ones and to make sure the mapped direction BASE - QUOTE is constant accross all chains and instruments.","x-cc-api-group":"MAPPING_ADVANCED"},"SIDE":{"type":"string","description":"The side of the trade: SELL, BUY or UNKNOWN. If the exchange / api does not provide a side, \"UNKNOWN\" will be returned.","x-cc-api-group":"SWAP"},"ID":{"type":"string","description":"The unique ID of the swap - constructed by appending the transaction hash and the transaction log index where the swap was discovered.","x-cc-api-group":"SWAP"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds derived from the block time in which the transaction was found.","format":"unix_timestamp","x-cc-api-group":"SWAP"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported TIMESTAMP field.","x-cc-api-group":"SWAP"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the transaction was processed by the integration internally.","format":"unix_timestamp","x-cc-api-group":"SWAP"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","x-cc-api-group":"SWAP"},"QUANTITY":{"type":"string","description":"The volume of the trade, given in the base instrument. E.g. for a dex WETH-USDT swap, this is how much WETH was swapped at the trade price.","x-cc-api-group":"SWAP"},"PRICE":{"type":"number","description":"The price in terms of the quote instrument of the swap. For a WETH-USDT swap, this is how much was swapped for one WETH in USDT.","x-cc-api-group":"SWAP"},"QUOTE_QUANTITY":{"type":"string","description":"The volume of the trade, given in the quote instrument. This is equivalent to QUANTITY * PRICE. (E.g. for a WETH-USDT trade, this is how much USDT was traded in total for the volume of WETH swapped.).","x-cc-api-group":"SWAP"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc. Used internally","x-cc-api-group":"SWAP"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this trade, this is unique per market / exchange and trading pair. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"SWAP"},"TRANSACTION_HASH":{"type":"string","description":"This is a unique cryptographic identifier that represents the specific transaction on the blockchain where the swap was discovered","x-cc-api-group":"SWAP"},"BLOCK_NUMBER":{"type":"number","description":"This represents the specific block on the blockchain where the swap was discovered.","x-cc-api-group":"SWAP"},"FROM":{"type":"string","description":"The address of the wallet who initiated the swap.","x-cc-api-group":"SWAP"},"MARKET_FEE_PERCENTAGE":{"type":"number","description":"The trading fee (in percentage) charged for each transaction that occurs for this instrument on the exchange","x-cc-api-group":"SWAP"},"MARKET_FEE_VALUE":{"type":"string","description":"The trading fee charged for this transaction, calculated using the market fee percentage and quantity/quote_quantity based on whether it is a buy or a sell. In uniswapv2/v3 the fee is calculated from the input instrument wrt the pool. (E.g. if it is a BUY, the input instrument is the QUOTE, if it is a sell - the input instrument is the BASE.)","x-cc-api-group":"SWAP"},"PROVIDER_KEY":{"type":"string","description":"The data source for the onchain data: internal_geth, quicknode, infura, etc.","x-cc-api-group":"SWAP"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"ONCHAIN_AMM_INSTRUMENT_SWAP_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid amm swaps for the requested time period. Amm swaps are ordered by CCSEQ, which generally reflects the order of their calculation. Any backfilled amm swaps that are added later will appear at the end of the array. This ensures a reliable and sequential view of amm swaps data, including historical corrections. If an amm swap was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid amm swaps to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid amm swaps from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of each amm swap and you can no longer easily guarantee you have received all the amm swaps.","items":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_SWAP"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The internal type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. uniswapv2, uniswapv3 etc.).","x-cc-api-group":"ID"},"CHAIN_ASSET":{"type":"number","description":"The asset id for the source chain, eg 2 for ETH.","x-cc-api-group":"LIQUIDITY_UPDATE"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument address and the CHAIN_ASSET separated by underscore (e.g. 0xe83c76c50033a5396d21ceff9fa192e2550d10ca_2, etc.)","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This takes the form: \"BASE-QUOTE\"s and is available only for instruments that have been mapped (e.g. WETH-USDT).","x-cc-api-group":"MAPPING"},"POOL_ADDRESS":{"type":"string","description":"The pool address.","x-cc-api-group":"LIQUIDITY_UPDATE"},"EVENT":{"type":"string","description":"Mint/Burn/Swap/Collect","x-cc-api-group":"LIQUIDITY_UPDATE"},"ID":{"type":"string","description":"The unique ID - constructed by appending the transaction hash and the transaction log index where the liquidity update event was discovered.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds derived from the block time in which the transaction was found.","format":"unix_timestamp","x-cc-api-group":"LIQUIDITY_UPDATE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported TIMESTAMP field.","x-cc-api-group":"LIQUIDITY_UPDATE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the transaction was processed by the integration internally.","format":"unix_timestamp","x-cc-api-group":"LIQUIDITY_UPDATE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","x-cc-api-group":"LIQUIDITY_UPDATE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc. Used Internally","x-cc-api-group":"LIQUIDITY_UPDATE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this trade, this is unique per market / exchange and trading pair. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TRANSACTION_HASH":{"type":"string","description":"This is a unique cryptographic identifier that represents the specific transaction on the blockchain where the liquidity update event was discovered","x-cc-api-group":"LIQUIDITY_UPDATE"},"BLOCK_NUMBER":{"type":"number","description":"This represents the specific block on the blockchain where the liquidity update event was discovered.","x-cc-api-group":"LIQUIDITY_UPDATE"},"FROM":{"type":"string","description":"The address of the wallet who initiated the change.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_BASE":{"type":"string","description":"The change in the quantity of the base instrument within the liquidity pool.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_QUOTE":{"type":"string","description":"The change in the quantity of the quote instrument within the liquidity pool","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_INVARIANT":{"type":"string","description":"This change in the invariant due to the liquidity update that has occurred. Note that for uniswapv2 based DEX, the fee from a swap is added to the invariant automatically which results in a slight positive CHANGE_IN_INVARIANT when a swap occurs. For uniswapv3 based DEX, the fee from swaps is kept separate and not contributing to the invariant and CHANGE_IN_INVARIANT should be 0","x-cc-api-group":"LIQUIDITY_UPDATE"},"PROVIDER_KEY":{"type":"string","description":"The data source for the onchain data: internal_geth, quicknode, infura, etc.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TICK":{"type":"number","description":"This is the tick value from which the price can be derived. This field is only available on trades from uniswapv3 or uniswapv3 forks where the EVENT field is a SWAP.","x-cc-api-group":"LIQUIDITY_UPDATE"},"LOWER_BOUND_TICK":{"type":"number","description":"This is the lower tick limit of the range where the liquidity provider wants to allocate their capital. This field is only available on trades from uniswapv3 or uniswapv3 forks only. For trades where EVENT field is SWAP, this field value defaults to 0.","x-cc-api-group":"LIQUIDITY_UPDATE"},"UPPER_BOUND_TICK":{"type":"number","description":"This is the upper tick limit of the range where the liquidity provider wants to allocate their capital. This field is only available on trades from uniswapv3 or uniswapv3 forks only. For trades where EVENT field is SWAP, this field value defaults to 0.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"INVARIANT":{"type":"string","description":"","x-cc-api-group":"LIQUIDITY_UPDATE"},"TOKEN_SUPPLY":{"type":"string","description":"","x-cc-api-group":"LIQUIDITY_UPDATE"},"MARKET_FEE_VALUES":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"PROTOCOL_FEE_AMOUNTS":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid and invalid amm liquidity updates for the requested time period. Amm liquidity updates are ordered by CCSEQ, which generally reflects the order of their calculation. Any backfilled amm liquidity updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of amm liquidity updates data, including historical corrections. If an amm liquidity update was initially deemed valid but later determined to have been sent in error or processed incorrectly the STATUS field will be changed to reflect this. We retain invalid amm liquidity updates to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence. You can elimiate invalid amm liquidity updates from the response by setting the skip_invalid_messages paramater to true, keep in mind that by doing this you will have gaps in the CCSEQ of each amm liquidity update and you can no longer easily guarantee you have received all the amm liquidity updates.","items":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_DEPRECATED":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"The internal type of the message.","x-cc-api-group":"ID"},"MARKET":{"type":"string","description":"The market / exchange under consideration (e.g. uniswapv2, uniswapv3 etc.).","x-cc-api-group":"ID"},"CHAIN_ASSET":{"type":"number","description":"The asset id for the source chain, eg 2 for ETH.","x-cc-api-group":"LIQUIDITY_UPDATE"},"INSTRUMENT":{"type":"string","description":"The unmapped instrument address and the CHAIN_ASSET separated by underscore (e.g. 0xe83c76c50033a5396d21ceff9fa192e2550d10ca_2, etc.)","x-cc-api-group":"ID"},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID after applying our mapping rules. This takes the form: \"BASE-QUOTE\"s and is available only for instruments that have been mapped (e.g. WETH-USDT).","x-cc-api-group":"MAPPING"},"POOL_ADDRESS":{"type":"string","description":"The pool address.","x-cc-api-group":"LIQUIDITY_UPDATE"},"EVENT":{"type":"string","description":"Mint/Burn/Swap/Collect","x-cc-api-group":"LIQUIDITY_UPDATE"},"ID":{"type":"string","description":"The unique ID - constructed by appending the transaction hash and the transaction log index where the liquidity update event was discovered.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TIMESTAMP":{"type":"integer","description":"The timestamp in seconds derived from the block time in which the transaction was found.","format":"unix_timestamp","x-cc-api-group":"LIQUIDITY_UPDATE"},"TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the reported TIMESTAMP field.","x-cc-api-group":"LIQUIDITY_UPDATE"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The timestamp in seconds that the transaction was processed by the integration internally.","format":"unix_timestamp","x-cc-api-group":"LIQUIDITY_UPDATE"},"RECEIVED_TIMESTAMP_NS":{"type":"number","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","x-cc-api-group":"LIQUIDITY_UPDATE"},"SOURCE":{"type":"string","description":"The source of the trade update: POLLING, STREAMING, GO, BLOB etc. Used Internally","x-cc-api-group":"LIQUIDITY_UPDATE"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this trade, this is unique per market / exchange and trading pair. Should always be increasing by 1 for each new trade we discover, not in chronological order.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TRANSACTION_HASH":{"type":"string","description":"This is a unique cryptographic identifier that represents the specific transaction on the blockchain where the liquidity update event was discovered","x-cc-api-group":"LIQUIDITY_UPDATE"},"BLOCK_NUMBER":{"type":"number","description":"This represents the specific block on the blockchain where the liquidity update event was discovered.","x-cc-api-group":"LIQUIDITY_UPDATE"},"FROM":{"type":"string","description":"The address of the wallet who initiated the change.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_BASE":{"type":"string","description":"The change in the quantity of the base instrument within the liquidity pool.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_QUOTE":{"type":"string","description":"The change in the quantity of the quote instrument within the liquidity pool","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN_INVARIANT":{"type":"string","description":"This change in the invariant due to the liquidity update that has occurred. Note that for uniswapv2 based DEX, the fee from a swap is added to the invariant automatically which results in a slight positive CHANGE_IN_INVARIANT when a swap occurs. For uniswapv3 based DEX, the fee from swaps is kept separate and not contributing to the invariant and CHANGE_IN_INVARIANT should be 0","x-cc-api-group":"LIQUIDITY_UPDATE"},"PROVIDER_KEY":{"type":"string","description":"The data source for the onchain data: internal_geth, quicknode, infura, etc.","x-cc-api-group":"LIQUIDITY_UPDATE"},"TICK":{"type":"number","description":"This is the tick value from which the price can be derived. This field is only available on trades from uniswapv3 or uniswapv3 forks where the EVENT field is a SWAP.","x-cc-api-group":"LIQUIDITY_UPDATE"},"LOWER_BOUND_TICK":{"type":"number","description":"This is the lower tick limit of the range where the liquidity provider wants to allocate their capital. This field is only available on trades from uniswapv3 or uniswapv3 forks only. For trades where EVENT field is SWAP, this field value defaults to 0.","x-cc-api-group":"LIQUIDITY_UPDATE"},"UPPER_BOUND_TICK":{"type":"number","description":"This is the upper tick limit of the range where the liquidity provider wants to allocate their capital. This field is only available on trades from uniswapv3 or uniswapv3 forks only. For trades where EVENT field is SWAP, this field value defaults to 0.","x-cc-api-group":"LIQUIDITY_UPDATE"},"CHANGE_IN":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"INVARIANT":{"type":"string","description":"","x-cc-api-group":"LIQUIDITY_UPDATE"},"TOKEN_SUPPLY":{"type":"string","description":"","x-cc-api-group":"LIQUIDITY_UPDATE"},"MARKET_FEE_VALUES":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"PROTOCOL_FEE_AMOUNTS":{"type":"array","description":"","items":{"type":"string"},"x-cc-api-group":"LIQUIDITY_UPDATE"},"STATUS":{"type":"string","description":"The status of the update.","example":"VALID","x-cc-api-group":"STATUS"}}},"ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_DEPRECATED_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","description":"An array containing valid amm liquidity updates for the requested time period. Amm liquidity updates are ordered by CCSEQ, which generally reflects the order of their calculation timestamps. Any backfilled amm liquidity updates that are added later will appear at the end of the array. This ensures a reliable and sequential view of amm liquidity update data, including historical corrections. If an amm liquidity update was initially deemed valid but later determined to have been sent in error or processed incorrectly, it is removed from this array and added to the \"Invalid\" array. We retain invalid amm liquidity updates in a separate array to maintain the continuity of CCSEQ and ensure there are no gaps in the sequence.","items":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_LIQUIDITY_UPDATE_DEPRECATED"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"METADATA_VERSION":{"type":"number","description":"The version of metadata, used for version conversions/migrates.","default":8,"example":8,"x-cc-api-group":"STATUS"},"INSTRUMENT_STATUS":{"type":"string","description":"The status of the instrument, we only poll / stream / connect to the ACTIVE ones, for the RETIRED / IGNORED / EXPIRED / READY_FOR_DECOMMISSIONING means we no longer query/stream data.","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"STATUS"},"INSTRUMENT":{"type":"string","description":"The instrument ID as it is on the exchange with small modifications - we do not allow the following characters inside isntrument ids: ,/&?","x-cc-api-group":"GENERAL"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping information for this instrument","properties":{},"default":{},"example":{},"x-cc-api-group":"GENERAL"},"INSTRUMENT_EXTERNAL_DATA":{"type":"string","description":"The full data we get from the polling endpoint for this specific instrument. This is a JSON stringified object with different properties per exchange.","x-cc-api-group":"GENERAL"},"CHAIN_ASSET":{"type":"number","description":"The asset id for the source chain, eg 2 for ETH.","x-cc-api-group":"GENERAL"},"INSTRUMENT_BASE_TOKEN_ADDRESS":{"type":"string","description":"The instrument base token address, retrieved from the zeroth index in the transaction log args property","x-cc-api-group":"GENERAL"},"INSTRUMENT_QUOTE_TOKEN_ADDRESS":{"type":"string","description":"The instrument quote token address, retrieved from the first index in the transaction log args property","x-cc-api-group":"GENERAL"},"INSTRUMENT_CREATION_BLOCK_TS":{"type":"number","description":"The timestamp at which the instrument block was created.","x-cc-api-group":"INTERNAL"},"INSTRUMENT_CREATION_BLOCK_NUMBER":{"type":"number","description":"The block number where the instrument was created.","x-cc-api-group":"INTERNAL"},"INSTRUMENT_CREATION_TRANSACTION_HASH":{"type":"string","description":"The hash of the transaction that created the instrument.","x-cc-api-group":"INTERNAL"},"INSTRUMENT_DATA_AVAILABLE_OUTSIDE_VM":{"type":"boolean","description":"Specifies whether the instrument's metadata should be synced to Global Redis","default":false,"example":false,"x-cc-api-group":"INTERNAL"},"INSTRUMENT_MARKET_FEE_PERCENTAGE":{"type":"number","description":"The trading fee (in percentage) charged for each transaction that occurs for this instrument on the exchange","x-cc-api-group":"INTERNAL"},"INSTRUMENT_TICK_SPACING":{"type":"number","description":"The distance between each tick as determined by the pool's fee tier","x-cc-api-group":"INTERNAL"},"POOL_ADDRESS":{"type":"string","description":"The address of the pool.","x-cc-api-group":"INTERNAL"},"ARCHIVE_STATUS":{"type":"string","description":"The archive status of the instrument","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_STATUS":{"type":"string","description":"The migration status of the symbol, we only poll / stream / connect empty or SETTLED","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_SOURCE":{"type":"string","description":"The migration source vm hostname.","x-cc-api-group":"MIGRATION"},"HOST_MIGRATION_DESTINATION":{"type":"string","description":"The migration destination vm hostname.","x-cc-api-group":"MIGRATION"},"INSTRUMENT_AMM_SWAP_ONCHAIN_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for AMM_SWAP_ONCHAIN.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume AMM_SWAP_ONCHAIN via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_AMM_SWAPS_ONCHAIN":{"type":"number","description":"This is both the CCSEQ and the total AMM_SWAPS_ONCHAIN we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_AMM_SWAPS_ONCHAIN_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from AMM_SWAPS_ONCHAIN all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_POLLING":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_POLLING":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_STREAMING":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_STREAMING":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_GO":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_GO":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_BLOB":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_BLOB":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_CALCULATED":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_CALCULATED":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_BACKFILL":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_BACKFILL":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_FIX":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_FIX":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_SWAP_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_SWAP_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_SWAP_ONCHAIN_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_SWAP_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_EOD":{"type":"object","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_EOD":{"type":"object","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"SIDE":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"QUANTITY":{"type":"string"},"PRICE":{"type":"number"},"QUOTE_QUANTITY":{"type":"string"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"MARKET_FEE_PERCENTAGE":{"type":"number"},"MARKET_FEE_VALUE":{"type":"string"},"PROVIDER_KEY":{"type":"string"}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_SWAP_ONCHAIN_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first AMM_SWAP_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_SWAP_ONCHAIN_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last AMM_SWAP_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_SWAP_ONCHAIN_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_SWAP_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_REST_URI":{"type":"string","description":"This is used to build up the request in some cases, this is where we put the id we use when querying for AMM_LIQUIDITY_UPDATE_ONCHAIN.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_REST_URL":{"type":"string","description":"The URL we send to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_STREAMING_SUBSCRIPTION":{"type":"string","description":"This is used to build up the subscription in some cases, this is where we put the id we use when subscribing for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_IS_READY_FOR_STREAMING_INTEGRATION":{"type":"boolean","description":"This flags the exchange instrument as in ready to consume AMM_LIQUIDITY_UPDATE_ONCHAIN via a streaming integration.","default":false,"example":false,"x-cc-api-group":"SOURCE"},"TOTAL_AMM_LIQUIDITY_UPDATES_ONCHAIN":{"type":"number","description":"This is both the CCSEQ and the total AMM_LIQUIDITY_UPDATES_ONCHAIN we have processed on this instrument","x-cc-api-group":"INTERNAL"},"LAST_CONCURRENT_BATCH_OF_AMM_LIQUIDITY_UPDATES_ONCHAIN_MS":{"type":"number","description":"The timestamp last encountered where the batch of trades from AMM_LIQUIDITY_UPDATES_ONCHAIN all occured at the same time. This is an issue when making the next request that requires polling by timestamp as a start/from parameter","x-cc-api-group":"INTERNAL"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_POLLING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_STREAMING_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_GO_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BLOB_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_CALCULATED_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_BACKFILL_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_FIX_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_REST_URI_LAST_RESPONSE_TS":{"type":"number","description":"The last time we received a request from the proxy swarm with AMM_LIQUIDITY_UPDATE_ONCHAIN for this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_REST_URI_LAST_REQUEST_TS":{"type":"number","description":"The last time we sent a request to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_REST_URI_NEXT_REQUEST_TS":{"type":"number","description":"The next time we expect to make a request for AMM_LIQUIDITY_UPDATE_ONCHAIN on this instrument.","x-cc-api-group":"SOURCE"},"INSTRUMENT_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_LAST_PROXIED_REST_REQUEST":{"type":"object","description":"The last proxied REST request we sent to the proxy swarm to get AMM_LIQUIDITY_UPDATE_ONCHAIN for the instrument.","properties":{},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD":{"type":"object","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD":{"type":"object","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in internal format.","properties":{"TYPE":{"type":"string"},"MARKET":{"type":"string"},"CHAIN_ASSET":{"type":"number"},"INSTRUMENT":{"type":"string"},"POOL_ADDRESS":{"type":"string"},"EVENT":{"type":"string"},"ID":{"type":"string"},"TIMESTAMP":{"type":"number"},"TIMESTAMP_NS":{"type":"number"},"RECEIVED_TIMESTAMP":{"type":"number"},"RECEIVED_TIMESTAMP_NS":{"type":"number"},"TRANSACTION_HASH":{"type":"string"},"BLOCK_NUMBER":{"type":"number"},"FROM":{"type":"string"},"CHANGE_IN_BASE":{"type":"string"},"CHANGE_IN_QUOTE":{"type":"string"},"CHANGE_IN_INVARIANT":{"type":"string"},"PROVIDER_KEY":{"type":"string"},"TICK":{"type":"number"},"LOWER_BOUND_TICK":{"type":"number"},"UPPER_BOUND_TICK":{"type":"number"},"CHANGE_IN":{"type":"array","items":{"type":"string"}},"INVARIANT":{"type":"string"},"TOKEN_SUPPLY":{"type":"string"},"MARKET_FEE_VALUES":{"type":"array","items":{"type":"string"}},"PROTOCOL_FEE_AMOUNTS":{"type":"array","items":{"type":"string"}}},"x-cc-api-group":"SOURCE"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the first AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific source type in external format.","x-cc-api-group":"SOURCE"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_EXTERNAL":{"type":"string","description":"This is the last AMM_LIQUIDITY_UPDATE_ONCHAIN that we have seen on the specific trade source in external format.","x-cc-api-group":"SOURCE"},"UNSTRUCTURED_AMM_LIQUIDITY_UPDATE_ONCHAIN_FROM_EOD_INTERNAL_DATA":{"type":"object","description":"This is any extra helper AMM_LIQUIDITY_UPDATE_ONCHAIN data that we would need for creating polling requests or subscribing with non standard information and anything that is very specific to one exchange API/Integration and it does not fit any of the other existing fields and is definitly only updated or written in only one service.","properties":{},"x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_POLLING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_STREAMING":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_GO":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BLOB":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_CALCULATED":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_BACKFILL":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_FIX":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"INSTRUMENT_SOURCE_EOD":{"type":"string","description":"Where do we get the instrument id / INSTRUMENT_{messageName}_REST_URI / INSTRUMENT_{messageName}_STREAMING_SUBSCRIPTION etc from.","x-cc-api-group":"SOURCE"},"FIRST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_POLLING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType POLLING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_STREAMING_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType STREAMING.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_NSQ_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType NSQ.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BLOB_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BLOB.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_HARDCODED_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType HARDCODED.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_INDEX_COMPOSITION_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType INDEX_COMPOSITION.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_FIX_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType FIX.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_BACKFILL_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType BACKFILL.","x-cc-api-group":"STATUS"},"FIRST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the first time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"},"LAST_SEEN_ON_EOD_CONFIG_TS":{"type":"number","description":"This is the last time instrument was seen on instrumentListSourceType EOD_CONFIG.","x-cc-api-group":"STATUS"}}},"ONCHAIN_AMM_INSTRUMENT_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_METADATA"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ONCHAIN_AMM_EXCHANGE_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_AMM_SWAPS_ONCHAIN":{"type":"integer","description":"The total number of defi swap trades this exchange has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_AMM_LIQUIDITY_UPDATES_ONCHAIN":{"type":"integer","description":"The total number of defi liquidity updates this exchange has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"DEX_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for trading on a decentralized exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"DEX_TRADING_SUPPORTED_PLATFORMS":{"type":"array","description":"When an exchange can be used on multiple blockchains, we refer to those blockchains as supported platforms.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"FACTORY_ADDRESS":{"type":"string","description":"Contract/smart contract/address for the factory contract on the specific blockchain platform."},"LAUNCH_DATE":{"type":"integer","description":"The data the dex exchange was deployed on this chain."},"LAUNCH_BLOCK_NUMBER":{"type":"integer","description":"The deploy block number of the dex"},"INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process"},"INTEGRATION_DATE":{"type":"integer","description":"The data the dex exchange was integrated."},"ABI_EVENTS_SUBSET":{"type":"array","description":"The events subset","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the event"},"DEFINITION":{"type":"string","description":"The definition of the event"},"COMMENTS":{"type":"string"}}}},"SMART_CONTRACTS_INVOLVED":{"type":"array","description":"Special addresses of smart contracts that are involved in the L2 scaling solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the smart contract"},"ADDRESS":{"type":"string","description":"The address of the smart contract"},"IS_UPGRADABLE":{"type":"boolean","description":"Tick this box if the smart contract is upgradable"},"DESCRIPTION":{"type":"string","description":"A description for the dex exchange."}}}},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"INTEGRATION_DEX"},"DEX_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the DEX API. This configuration allows Data API access to be restricted to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with defined role names and permissions, allowing for controlled API access and streamlined role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_DEX"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"WHITE_PAPER_URL":{"type":"string","description":"The URL providing access to the project’s white paper. A white paper gives investors and stakeholders technical and conceptual information about the project’s purpose, mechanics, and vision.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"DEX_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the DEX integration.","x-cc-api-group":"INTEGRATION_DEX"},"DEX_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"CCDATA_LATEST_DEX_BENCHMARK_SCORE":{"type":"number","description":"This is a measure of the total number of benchmark score out of 100. It is the sum of all the individual section score in the latest benchmark report.","x-cc-api-group":"BENCHMARK"},"CCDATA_LATEST_DEX_BENCHMARK_GRADE":{"type":"string","description":"This is a measure of the grade the exchange has based on the benchmark score. We classify anything over B to be a top tier exchange.","x-cc-api-group":"BENCHMARK"},"CCDATA_HISTORICAL_DEX_BENCHMARK_REPORTS":{"type":"array","description":"An array holding the series of benchmark reports data for the exchange. Each element in the array corresponds to a set of data from a specific report, collectively providing a comprehensive historical record of the exchange's performance metrics over time.","items":{"type":"object","properties":{"PUBLICATION_DATE":{"type":"integer","description":"Indicates the date each report was published, serving as a historical marker for the data and allowing for chronological analysis of the exchange's performance."},"OVERALL_SCORE":{"type":"number","description":"Represents the overall score assigned in each benchmark report, encapsulating various performance metrics to reflect the exchange's effectiveness and reliability at each historical point."},"OVERALL_GRADE":{"type":"string","description":"Denotes the grade given in each report, categorizing the exchange's performance into a specific tier, enabling a comparative assessment over time"}}},"x-cc-api-group":"BENCHMARK"}}},"ONCHAIN_AMM_EXCHANGE_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ONCHAIN_AMM_EXCHANGE_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"ONCHAIN_AMM_INSTRUMENT_METADATA_DISPLAY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"602","x-cc-api-group":"ID"},"EXCHANGE_STATUS":{"type":"string","description":"The status of the exchange. We only poll / stream / connect to the ACTIVE ones, for the RETIRED ones we no longer query for data","default":"ACTIVE","example":"ACTIVE","x-cc-api-group":"ID"},"MAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The total number of instruments that have been verified by our mapping team and have been properly assigned with a base, quote, mapping function, and other necessary fields. This is done to ensure that pairs like XXBTZUSD are accurately mapped to BTC-USD and that the pair refers to the correct assets rather than using the same asset id to represent different assets.","example":1337,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"UNMAPPED_INSTRUMENTS_TOTAL":{"type":"integer","description":"The number of instruments that have not yet been verified by our mapping team.","example":42,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"INSTRUMENT_STATUS":{"type":"object","description":"An object with the total number of instrument for each of the available instrument statuses.","properties":{"ACTIVE":{"type":"integer","description":"The total number of instruments currently available on the market, which are considered active. An active instrument is defined as an instrument from which we retrieve data and have either already mapped or are planning to map.","example":1353},"IGNORED":{"type":"integer","description":"The total number of instruments available on the market that are classified as ignored, meaning that we do not plan to map them. Ignored instruments are those from which we do retrieve data but do not have any intention to map.","example":0},"RETIRED":{"type":"integer","description":"The total number of instruments that are classified as retired, meaning that they are no longer actively traded on the market. These instruments have ceased trading, and as such, we do not retrieve data from them but we have mapped them already.","example":25},"EXPIRED":{"type":"integer","description":"The total number of instruments that are classified as expired, meaning that they are mapped instruments that are no longer actively traded on the market. These expired instruments are typically futures or options instruments that have reached their expiration date and are no longer available for trading. While we have previously mapped these instruments, we do not retrieve any data from them since they are no longer actively traded.","example":1}},"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_AMM_SWAPS_ONCHAIN":{"type":"integer","description":"The total number of defi swap trades this exchange has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"TOTAL_AMM_LIQUIDITY_UPDATES_ONCHAIN":{"type":"integer","description":"The total number of defi liquidity updates this exchange has processed.","example":527301,"x-cc-api-group":"INSTRUMENT_SUMMARY"},"ID":{"type":"number","description":"The unique identifier for the exchange entry","x-cc-api-group":"ID"},"EXCHANGE_INTERNAL_NAME":{"type":"string","description":"Internal mapped name for a specific exchange","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this exchange will be found on / url-slug","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this exchange","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when exchanges are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Exchange internal creation unix ts in our system","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"number","description":"Internal user id of the user who created the exchange","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the exchange at the time of the exchange creation (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Exchange internal last updated unix ts in our system","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"number","description":"Internal user id of the user who last updated the exchange","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the exchange at the time of the exchange update (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_MAIN":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_MAIN":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_INTEGRATION_BACKUP":{"type":"number","description":"Internal user id of the user who is the backup for updating and maintaining the exchange integration","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_INTEGRATION_BACKUP":{"type":"string","description":"Internal username of the user who is the backup for maintaining the exchange integration at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_BUSINESS_OR_CONTRACT":{"type":"number","description":"Internal user id of the user who is in charge of updating and maintaining the exchange contract data","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME_BUSINESS_OR_CONTRACT":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the exchange contract data at the time of the exchange assignment (the user might have changed their username but not their user id)","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this exchange.","x-cc-api-group":"BASIC"},"EXCHANGE_SUSPENSION_REASON":{"type":"string","description":"This specifies the underlying cause leading to the suspension of trading activities on the exchange. This information is critical for transparency and assists in the decision-making process for users and stakeholders. Selecting an option from this dropdown provides clarity on the nature of the suspension, whether it's temporary or permanent.","x-cc-api-group":"ID"},"TRADING_PERMANENTLY_SUSPENDED_DATE":{"type":"number","description":"The retire date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"NAME":{"type":"string","description":"The full name of the exchange, e.g. Coinbase.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The logo of this exchange.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"IS_EXCLUDED_FROM_METRICS_AND_TOPLISTS":{"type":"boolean","description":"Indicates whether the exchange instruments should be excluded from the overall volumes and asset markets toplist. Basically exclude it from all aggregations.","x-cc-api-group":"BASIC"},"HAS_SPOT_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers spot trading.","x-cc-api-group":"BASIC"},"HAS_FUTURES_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers futures trading.","x-cc-api-group":"BASIC"},"HAS_INDEX_PUBLISHING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers index publishing.","x-cc-api-group":"BASIC"},"HAS_OPTIONS_TRADING":{"type":"boolean","description":"This is set to true if is a centralized exchange and it offers options trading.","x-cc-api-group":"BASIC"},"HAS_DEX_TRADING":{"type":"boolean","description":"This is set to true if is a decentralized exchange and it offers spot trading that is based on automated market making smart contract.","x-cc-api-group":"BASIC"},"DEX_TRADING_MECHANISMS":{"type":"array","description":"Defines the operational mechanisms used for trading on a decentralized exchange.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the trading mechanism"}}},"x-cc-api-group":"BASIC"},"DEX_TRADING_SUPPORTED_PLATFORMS":{"type":"array","description":"When an exchange can be used on multiple blockchains, we refer to those blockchains as supported platforms.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"FACTORY_ADDRESS":{"type":"string","description":"Contract/smart contract/address for the factory contract on the specific blockchain platform."},"LAUNCH_DATE":{"type":"integer","description":"The data the dex exchange was deployed on this chain."},"LAUNCH_BLOCK_NUMBER":{"type":"integer","description":"The deploy block number of the dex"},"INTEGRATION_STAGE":{"type":"string","description":"The current stage of the exchange integration process"},"INTEGRATION_DATE":{"type":"integer","description":"The data the dex exchange was integrated."},"ABI_EVENTS_SUBSET":{"type":"array","description":"The events subset","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the event"},"DEFINITION":{"type":"string","description":"The definition of the event"},"COMMENTS":{"type":"string"}}}},"SMART_CONTRACTS_INVOLVED":{"type":"array","description":"Special addresses of smart contracts that are involved in the L2 scaling solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the smart contract"},"ADDRESS":{"type":"string","description":"The address of the smart contract"},"IS_UPGRADABLE":{"type":"boolean","description":"Tick this box if the smart contract is upgradable"},"DESCRIPTION":{"type":"string","description":"A description for the dex exchange."}}}},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"INTEGRATION_DEX"},"DEX_API_ACCESS_PERMITTED_ROLES":{"type":"array","description":"Defines role-based access control for the DEX API. This configuration allows Data API access to be restricted to users assigned specific roles, as specified in a JSON array. Each role entry is validated to ensure compliance with defined role names and permissions, allowing for controlled API access and streamlined role management.","items":{"type":"object","properties":{"ROLE_NAME":{"type":"string","description":""}}},"x-cc-api-group":"INTEGRATION_DEX"},"WEBSITE_URL":{"type":"string","description":"The link for the official exchange website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"INCORPORATION_DOCUMENT_URL":{"type":"string","description":"The URL providing access to the project’s incorporation documents. These documents offer legal information about the company’s establishment and its legal standing.","x-cc-api-group":"RESOURCE_LINKS"},"WHITE_PAPER_URL":{"type":"string","description":"The URL providing access to the project’s white paper. A white paper gives investors and stakeholders technical and conceptual information about the project’s purpose, mechanics, and vision.","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the exchange, they should all be PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"The category of document being uploaded."},"VERSION":{"type":"integer","description":"The version number of the document if applicable."},"URL":{"type":"string","description":"Upload the PDF document containing point-in-time information captured from the exchange."},"ORIGINAL_SOURCE_URL":{"type":"string","description":"The original URL on the exchange website where this document was found or downloaded from."},"COMMENT":{"type":"string","description":"Additional notes or context about the document."}}},"x-cc-api-group":"RESOURCE_LINKS"},"EXCHANGE_CERTIFICATIONS":{"type":"array","description":"Defines the specific certifications or accreditations that an exchange has obtained.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the certification or accreditation"},"SUB_TYPE":{"type":"string","description":"The certification sub type."},"ID":{"type":"string","description":"The certification id."},"ISSUE_DATE":{"type":"integer","description":"The certification issue date."},"URL":{"type":"string","description":"The URL of cerification document if there is one.","example":"https://www.example.com"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"SUPPORT_CONTACT_INFORMATION":{"type":"array","description":"Various channels through which customers can reach out to the exchange for support.","items":{"type":"object","properties":{"CONTACT_MEDIUM":{"type":"string"},"DETAILS":{"type":"string","description":"Specific details like email address, phone number, URL, etc., for the selected contact medium."},"COMMENTS":{"type":"string","description":"Any additional comments or notes regarding the support contact."}}},"x-cc-api-group":"INTERNAL"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"BASIC"},"IS_INCLUDED_IN_CADLI":{"type":"boolean","description":"Indicates whether the asset is part of the CADLI index, which calculates the price of an asset in USD. This field is crucial for tracking asset inclusion in CADLI, aiding in data analysis and decision-making processes related to asset pricing.","x-cc-api-group":"INTERNAL"},"EXCHANGE_LICENSURES":{"type":"object","description":"The set of regional licensures this exchange holds. Stored as an object keyed by region, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one region at a time via the field update endpoint; pass `{region, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange holds licensure for this region."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this licensure was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_EXCHANGE_LICENSURES":{"type":"array","description":"Append-only log of regional licensure changes for this exchange. Each entry records the region, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever EXCHANGE_LICENSURES is updated.","items":{"type":"object","properties":{"REGION":{"type":"string","description":"The licensure region that changed (e.g. US, GLOBAL)."},"ELIGIBLE":{"type":"boolean","description":"The new licensure value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"INDEX_ELIGIBILITIES":{"type":"object","description":"The set of indices this exchange is eligible for. Stored as an object keyed by product, with each entry recording ELIGIBLE (boolean) and UPDATED_AT (unix timestamp of the last change). Updated one product at a time via the field update endpoint; pass `{product, eligible}` as the field value.","properties":{"ELIGIBLE":{"type":"boolean","description":"Whether the exchange is eligible for this index product."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp recording when this eligibility was last changed. Auto-populated by the system."}},"x-cc-api-group":"BASIC"},"HISTORICAL_INDEX_ELIGIBILITIES":{"type":"array","description":"Append-only log of index eligibility changes for this exchange. Each entry records the product, the new ELIGIBLE value, and the UPDATED_AT timestamp at which the change occurred. Populated by the system whenever INDEX_ELIGIBILITIES is updated.","items":{"type":"object","properties":{"PRODUCT":{"type":"string","description":"The index product that changed (e.g. CBER, CBR, CCIX, SDA, RRVWAP)."},"ELIGIBLE":{"type":"boolean","description":"The new eligibility value."},"UPDATED_AT":{"type":"integer","description":"Unix timestamp at which this change was recorded."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_ALTERNATIVE_IDS":{"type":"array","description":"A collection of alternative identification data for exchanges as recognized by various data platforms.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the alternative data platform or identifier."},"ID":{"type":"string","description":"The unique identifier associated with the exchange on the alternative platform."},"CURRENTLY_IN_USE":{"type":"boolean","description":"Indicates whether this alternative ID is currently in use."}}},"x-cc-api-group":"BASIC"},"EXCHANGE_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this exchange.","x-cc-api-group":"DESCRIPTION"},"EXCHANGE_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this exchange.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"EXCHANGE_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this exchange. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"IS_HIDDEN":{"type":"boolean","description":"Indicates whether the exchange is hidden.","x-cc-api-group":"INTERNAL"},"DEX_INTEGRATION_COMMENTS":{"type":"string","description":"Any internal comments for the DEX integration.","x-cc-api-group":"INTEGRATION_DEX"},"DEX_TRADING_LAUNCH_DATE":{"type":"number","description":"The launch date of the exchange is indicated as (yyyy-mm-dd).","x-cc-api-group":"BASIC"},"CCDATA_LATEST_DEX_BENCHMARK_SCORE":{"type":"number","description":"This is a measure of the total number of benchmark score out of 100. It is the sum of all the individual section score in the latest benchmark report.","x-cc-api-group":"BENCHMARK"},"CCDATA_LATEST_DEX_BENCHMARK_GRADE":{"type":"string","description":"This is a measure of the grade the exchange has based on the benchmark score. We classify anything over B to be a top tier exchange.","x-cc-api-group":"BENCHMARK"},"CCDATA_HISTORICAL_DEX_BENCHMARK_REPORTS":{"type":"array","description":"An array holding the series of benchmark reports data for the exchange. Each element in the array corresponds to a set of data from a specific report, collectively providing a comprehensive historical record of the exchange's performance metrics over time.","items":{"type":"object","properties":{"PUBLICATION_DATE":{"type":"integer","description":"Indicates the date each report was published, serving as a historical marker for the data and allowing for chronological analysis of the exchange's performance."},"OVERALL_SCORE":{"type":"number","description":"Represents the overall score assigned in each benchmark report, encapsulating various performance metrics to reflect the exchange's effectiveness and reliability at each historical point."},"OVERALL_GRADE":{"type":"string","description":"Denotes the grade given in each report, categorizing the exchange's performance into a specific tier, enabling a comparative assessment over time"}}},"x-cc-api-group":"BENCHMARK"},"instruments":{"type":"object","description":"The list of instruments requested. It could be a selected few or all for each market.","properties":{"BTC-USD":{"type":"object","description":"All the relevant data for the particular mapped or unmapped instrument id.","properties":{"TYPE":{"type":"string","description":"Type of the message. This is used to be able to validate the fields and to give an indication of what data to expect in the rest of the object / array","example":"612"},"INSTRUMENT_STATUS":{"type":"string","description":"Status of the current instrument, this is ACTIVE, RETIRED or EXPIRED.","example":"ACTIVE"},"INSTRUMENT":{"type":"string","description":"The internal exchange defined instrument id. This will be different from integration to integration as each exchange has different naming conventions.","example":"BTCUSDT"},"HISTO_SHARD":{"type":"string","description":"Our internal shard for historical OHLCV+ (minute/hour/day) market data. Minute data is only held in the historical database for up to 3 weeks and we ship it to blob storage afterwards. The API utilizes multiple replicas of a single shard in a round-robin manner.","example":"PG_COLLECT_01"},"INSTRUMENT_MAPPING":{"type":"object","description":"The current mapping object for this instrument.","properties":{"MAPPED_INSTRUMENT":{"type":"string","description":"The current mapping instrument id.","example":"BTC-USD"},"BASE":{"type":"string","description":"The current mapped base asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"BTC"},"QUOTE":{"type":"string","description":"The current mapped quote asset for this instrument. This value can change if assets undergo rebranding or if a more prominent asset takes over the symbol of an existing asset.","example":"USD"},"BASE_ID":{"type":"string","description":"Represents the internal ID for the base asset (e.g., 1 for BTC). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":"BTC"},"QUOTE_ID":{"type":"string","description":"Represents the internal CCData ID for the quote asset (e.g., 5 for USD). This ID is unique and immutable, ensuring consistent identification. Applicable only to instruments with a mapping.","example":"USD"},"TRANSFORM_FUNCTION":{"type":"string","description":"The current mapping function for this instrument. For example, during mapping, instruments may be inverted when they originally trade from a less dominant to a more dominant pair. For instance, USD-BTC would use the function INVERT and be represented as BTC-USD.","example":"INVERT"},"CREATED_ON":{"type":"number","description":"The timestamp indicating when this mapping was created.","example":1433121597}}},"MAPPED_INSTRUMENT":{"type":"string","description":"The mapped instrument ID (it depends on the instrument type, for spot it is just BASE-QUOTE).","example":"BTC-USDT"},"HAS_AMM_SWAPS_ONCHAIN":{"type":"boolean","description":"A boolean flag indicating whether the instrument has AMM SWAPs or not. ","example":true},"HAS_AMM_LIQUIDITY_UPDATES_ONCHAIN":{"type":"boolean","description":"A boolean flag indicating whether the instrument has onchain AMM liquidity updates or not. ","example":true},"FIRST_AMM_SWAP_ONCHAIN_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed liquidity update for this instrument on-chain. This timestamp represents the earliest recorded liquidity update. Updates are rare and may take up to 1 hour to reflect on the API if backfilled.","example":1677283205,"format":"unix_timestamp"},"FIRST_AMM_LIQUIDITY_UPDATE_ONCHAIN_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the first observed liquidity update for this instrument on-chain. This timestamp represents the earliest recorded liquidity update. Updates are rare and may take up to 1 hour to reflect on the API if backfilled.","example":1677283205,"format":"unix_timestamp"},"LAST_AMM_SWAP_ONCHAIN_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last AMM SWAP observed for this instrument. This timestamp represents when the most recent AMM SWAP was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the AMM SWAPs by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"LAST_AMM_LIQUIDITY_UPDATE_ONCHAIN_TIMESTAMP":{"type":"number","description":"The Unix timestamp of the last AMM liquidity update observed for this instrument. This timestamp represents when the most recent AMM liquidity update was recorded in our system. Data may be delayed by up to 1 hour and is indicative only. For real-time data, consult the latest tick endpoint or use this timestamp in the after_ts parameter of the AMM liquidity updates by timestamp endpoint.","example":1677283205,"format":"unix_timestamp"},"TOTAL_AMM_SWAPS_ONCHAIN":{"type":"number","description":"The total number of AMM SWAPs processed for this instrument on this specific on-chain dex. This represents the cumulative updates handled by our system.","example":527301},"TOTAL_AMM_LIQUIDITY_UPDATES_ONCHAIN":{"type":"number","description":"The total number of liquidity updates processed for this instrument on this specific on-chain dex. This represents the cumulative updates handled by our system.","example":527301},"INSTRUMENT_MARKET_FEE_PERCENTAGE":{"type":"number","description":"The trading fee (in percentage) charged for each transaction that occurs on the market"},"INSTRUMENT_BASE_TOKEN_ADDRESS":{"type":"string","description":"The instrument base token address, retrieved from the zeroth index in the transaction log args property"},"INSTRUMENT_QUOTE_TOKEN_ADDRESS":{"type":"string","description":"The instrument quote token address, retrieved from the first index in the transaction log args property"}}}}}}},"ONCHAIN_AMM_INSTRUMENT_METADATA_DISPLAY_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ONCHAIN_AMM_INSTRUMENT_METADATA_DISPLAY"}},"Err":{"type":"object","properties":{}}}},"ETH_FULL_BLOCK":{"type":"object","x-visible-in-ai":true,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1025","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind","x-cc-api-group":"ID"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1,"x-cc-api-group":"ID"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg? this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false,"x-cc-api-group":"ID"},"NUMBER":{"type":"integer","description":"The current block number","example":46147,"x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1438918233,"x-cc-api-group":"ID"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200,"x-cc-api-group":"ID"},"METADATA":{"type":"object","description":"The current block full metadata","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1021"},"NUMBER":{"type":"integer","description":"The sequential order of the block within the blockchain. Each block's number is one greater than the number of the previous block.","example":2},"TIMESTAMP":{"type":"number","description":"The exact time when the block was mined. It's a crucial piece of information for tracking the chronological order of blocks.","example":1438270017,"format":"unix_timestamp"},"HASH":{"type":"string","description":"The unique identifier for the block, generated using cryptographic algorithms. It represents the content of the block and is used for verification and linking blocks together.","example":"0xb495a1d7e6663152ae92708da4843337b958146015a2802f4193a410044698c9"},"PARENT_HASH":{"type":"string","description":"The hash of the previous block in the blockchain. It establishes the chronological link between blocks.","example":"00x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6xf"},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where transactions are finalized.","example":2},"CONFIRMATIONS":{"type":"integer","description":"The number of blocks added to the blockchain after this block. More confirmations generally mean a higher degree of security and acceptance in the network.","example":0},"VERSION":{"type":"integer","description":"A version number indicating which set of block validation rules to follow. Miners can use this to signal readiness to enforce network upgrades.","example":0},"NONCE":{"type":"string","description":"This is a random number used in the process of mining. It's combined with other block data to create a hash that meets specific mining criteria.","example":"0xb853fa261a86aa9e"},"BITS":{"type":"string","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":"17035a59"},"TARGET":{"type":"string","description":"","example":"000000000000000000025ced0000000000000000000000000000000000000000"},"SHA3_UNCLES":{"type":"string","description":"This stores the hash of the block's uncles, which are valid blocks that were not included in the main blockchain but can provide additional rewards to miners.","example":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"MILLI_TIMESTAMP":{"type":"integer","description":"","example":0},"TRANSACTIONS_ROOT":{"type":"string","description":"The hash of the root node of the Merkle tree that organizes the transactions in the block. It enables quick verification of included transactions.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"STATE_ROOT":{"type":"string","description":"This hash represents the state of the blockchain after all transactions in the block have been executed. It's used to ensure the consistency of the blockchain's state.","example":"0x4943d941637411107494da9ec8bc04359d731bfd08b72b4d0edcbd4cd2ecb341"},"MERKLE_ROOT":{"type":"string","description":"The Merkle root hash, which summarizes all the transactions included in the block. It ensures the integrity of the transactions.","example":"04d7486fa71ef6061469a55dc0fdeb634d3e9849dd0ee829668720524d8178f3"},"RECEIPTS_ROOT":{"type":"string","description":"This is similar to the transactions root, the receipts root hash is the root of a Merkle tree, but it stores the receipts of transactions, including information about their success or failure.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"REQUESTS_HASH":{"type":"string","description":"","example":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"SEND_COUNT":{"type":"integer","description":"The total number of messages or transactions that have been sent from Layer 2 to Layer 1.","example":0},"SEND_ROOT":{"type":"string","description":"Merkle root used to track messages sent from Layer 2 to Layer 1.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"MINER":{"type":"string","description":"This specifies the address of the miner who successfully mined the block. This miner is rewarded with cryptocurrency for their effort.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"MIX_HASH":{"type":"string","description":"This is a 256-bit hash value. It's essentially a part of the proof-of-work mechanism used in Ethereum to secure the blockchain. This hash is derived from the mixing of various components of the block, including the nonce, timestamp, previous block's hash, and more.","example":"0x2f0790c5aa31ab94195e1f6443d645af5b75c46c04fbf9911711198a0ce8fdda"},"DIFFICULTY":{"type":"integer","description":"This indicates how hard it was to mine the block. It's adjusted based on the overall network's hash rate to maintain a consistent block generation rate.","example":17163096064},"TOTAL_DIFFICULTY":{"type":"integer","description":"This field accumulates the difficulty values of all previous blocks, providing a measure of the blockchain's security.","example":51514445824},"CHAIN_WORK":{"type":"string","description":"The total cumulative amount of work in the blockchain up to and including this block. It's a measure of the blockchain's security.","example":"00000000000000000000000000000000000000007051baf97bac4bdfd3975a78"},"SIZE":{"type":"integer","description":"The size of the block in bytes. It includes all the data and metadata within the block.","example":544},"WEIGHT":{"type":"integer","description":"A metric for the block's size that considers both the non-SegWit and SegWit data, used to ensure blocks remain within the maximum block weight.","example":3993394},"BLOCK_TIME":{"type":"integer","description":"The time taken in seconds between mining the previous and current block. It's an important metric for understanding the network's performance and stability.","example":29},"MEDIAN_TIME":{"type":"integer","description":"The median time of the last 11 blocks. It's used to ensure the network's time consistency.","example":1711120689},"AUTHOR":{"type":"string","description":"","example":"0xd883010f0b846765746888676f312e32342e32856c696e7578"},"EXTRA_DATA":{"type":"string","description":"This allows miners to include arbitrary information in the block. It's often used to add contextual information or messages.","example":"\u0000Geth/v1.0.0-0cdc7647/linux/go1.4"},"GAS_LIMIT":{"type":"integer","description":"The maximum amount of computational work a block can contain. Each transaction consumes a specific amount of gas, and this limit prevents abuse of the network's resources.","example":5000},"GAS_USED":{"type":"integer","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":0},"TRANSACTION_COUNT":{"type":"integer","description":"This indicates how many transactions are included in the block.","example":0},"BASE_FEE_PER_GAS":{"type":"integer","description":"The base fee for each unit of gas in transactions. It's part of Ethereum's fee market mechanism.","example":null},"WITHDRAWALS_ROOT":{"type":"string","description":"The hash value that represents a data structure containing information about the withdrawals that occurred in the block.","example":null},"BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by blob transactions within the block.","example":null},"EXCESS_BLOB_GAS":{"type":"string","description":"The amount of gas exceeding the standard limit for blob transactions.","example":null}},"example":{},"x-cc-api-group":"METADATA"},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1022"},"HASH":{"type":"string","description":"Transaction internal mapped hash. (For BTC transactions without SegWit data, this is the same as the txid. For SegWit transactions, this represents the hash of the transaction including the witness data).","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRANSACTION_TYPE":{"type":"integer","description":"The EIP-2718 type of this transaction envelope","example":0},"NONCE":{"type":"integer","description":"The number of transactions made by the sender prior to this one encoded as hexadecimal. It prevents duplicate transactions and maintains order in the blockchain.","example":0},"INDEX":{"type":"integer","description":"The position of the transaction within the block. Helps in identifying the order of transactions in the block.","example":0},"FROM_ADDRESS":{"type":"string","description":"The address of the sender.","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"TO_ADDRESS":{"type":"string","description":"The address of the recipient. Null when its a contract creation transaction","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"VALUE":{"type":"string","description":"The amount of cryptocurrency being transferred from the sender to the recipient.","example":31337},"GAS":{"type":"string","description":"The amount of computational work a transaction requires to be executed. This is used to determine the fees paid by the sender to incentivize miners to include the transaction in a block.","example":21000},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"L1_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where the transaction was included.","example":1},"L1_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the base fee on Layer 1 for the transaction.","example":21000},"L1_BLOB_BASE_FEE":{"type":"string","description":"The base fee for processing blob transactions on Layer 1.","example":21000},"L1_BLOB_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the blob base fee on Layer 1.","example":21000},"L1_FEE":{"type":"string","description":"The total fee paid for processing the transaction on Layer 1.","example":21000},"L1_GAS_PRICE":{"type":"string","description":"The price per unit of gas for executing the transaction on Layer 1.","example":21000},"DEPOSIT_NONCE":{"type":"integer","description":"A unique number associated with the deposit transaction to ensure the uniquness and order of deposit transactions.","example":12700001},"DEPOSIT_RECEIPT_VERSION":{"type":"integer","description":"The version number of the deposit receipt, indicating the format version used.","example":1},"GAS_PRICE":{"type":"string","description":"The price the sender is willing to pay for each unit of gas. Together with the gas limit, it determines the total fee for the transaction.","example":50000000000000},"INPUT":{"type":"string","description":"The data associated with the transaction, often used in smart contract interactions. It can contain parameters and instructions for contract execution.","example":"0x"},"RECEIPT_BLOB_GAS_PRICE":{"type":"string","description":"The total gas price of the transaction blobs.","example":21000},"RECEIPT_BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction blobs.","example":21000},"RECEIPT_CUMULATIVE_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction and all preceding transactions within the same block.","example":21000},"RECEIPT_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"RECEIPT_CONTRACT_ADDRESS":{"type":"string","description":"This is the address created when a contract is deployed. The *TO* field should be null in this case.","example":null},"RECEIPT_ROOT":{"type":"string","description":"Only transactions included in blocks before the Byzantium Hard Fork have this field, as it was replaced by the *STATUS* field.","example":null},"RECEIPT_STATUS":{"type":"integer","description":"The status of a transaction is \"1\" if successful or \"0\" if it was a failure or reverted. Only transactions included in blocks post-Byzantium Hard Fork have this field.","example":1},"RECEIPT_TIMEBOOSTED":{"type":"boolean","description":"","example":true},"MAX_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for a transaction to be included promptly in a block.","example":null},"MAX_PRIORITY_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"MAX_FEE_PER_BLOB_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"RECEIPT_EFFECTIVE_GAS_PRICE":{"type":"string","description":"The total base charge plus tip paid for each unit of gas.","example":50000000000000},"ACCESS_LIST":{"type":"array","description":"This causes a transaction to warm (i.e. pre-cache) another addresses state and the specified storage keys, Available on EIP-2930 transactions.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"AUTHORIZATION_LIST":{"type":"array","description":"","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"ECDSA_V":{"type":"integer","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. This value helps to recover which public key was used to sign the transaction. Calculated as (CHAIN_ID * 2 + 35) or (CHAIN_ID * 2 + 36).","example":28},"ECDSA_R":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0"},"ECDSA_S":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"},"Y_PARITY":{"type":"string","description":"This is a recent addition from July 2023 and could be used instead of the ECDSA_V. ECDSA_V would be used for backward compatibility.","example":"0x0"},"TRACES":{"type":"array","description":"The detailed records of the steps and interactions that occured during the execution of this transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}}},"LOGS":{"type":"array","description":"The chronological records of all activities such as transaction executions, contract interactions, errors, and changes that occur within a blockchain network.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1024"},"ADDRESS":{"type":"string","description":"The address of the contract or account that generated the log entry. It serves as an identifier for the source of the event or action that triggered the log.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"INDEX":{"type":"integer","description":"The position of the log entry within the sequence of logs generated by a transaction. It's usually an incremental integer starting from 0 for the first log in a transaction. This field helps in distinguishing and organizing logs generated during a transaction.","example":0},"DATA":{"type":"string","description":"This contains the arbitrary data associated with the log entry. This data can vary depending on the specific smart contract and event that generated the log. It might include relevant information about the state change or action represented by the log.","example":"0x0000000000000000000000000000000000000000000000013125faba00000000"},"TOPICS":{"type":"array","description":"An array of one or more indexed event topics. These topics are hash values of event signatures or indexed arguments. They provide a way to filter and search for specific types of events within the logs efficiently.","example":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000007054b0f980a7eb5b3a6b3446f3c947d80162775c","0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80"],"items":{"type":"string"}},"REMOVED":{"type":"boolean","description":"A a boolean indicator that signals whether the log entry has been removed or undone due to a chain reorganization or a consensus rule change. It helps applications differentiate between active and reverted logs. It is \"true\" if log was removed, otherwise false.","example":false}}}},"BLOBS":{"type":"array","description":"The current transaction blobs, null when there are no blobs attached to the transaction.","example":[],"items":{"type":"string"}},"HEX":{"type":"string","description":"The raw hexadecimal representation of the entire transaction data.","example":"0x"},"TRANSACTION_INPUTS":{"type":"array","description":"The source of funds for a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1047"},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"96772166abc6c3348e2ebf7c5a0f0297a99c19f8eb7479635f93caccfc4e0374"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"INDEX_IN_TRANSACTION":{"type":"integer","description":"The position of a specific input or output within a transaction.","example":20},"SEQUENCE":{"type":"integer","description":"A number used to specify the order of transaction.","example":4294967295},"COINBASE":{"type":"string","description":"A special type of transaction input that is used to reward miners with newly created bitcoins.","example":""},"TX_IN_WITNESS":{"type":"string","description":"","example":["924b2624416402a52ed7cf4eba6b2c535d2def8e649a74ed97aaca5ec54881ef3b34da68bb13d76d6b420e60297a9247cb081d1e59cb2c260b1509cff25d4b31","204c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612eac0063036f7264010b2047f22ed15d3082f5e9a005864528e4f991ade841a9c5846e2c118425878b6be1010d09b530368c74df10a30368","c04c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612e"]},"SCRIPT_SIG":{"type":"object","description":"","example":{"ASM":"","HEX":""}},"SOURCE_TRANSACTION_OUTPUT":{"type":"object","description":"","example":{"TYPE":"1048","BLOCK_NUMBER":840017,"BLOCK_TIMESTAMP":1713580375,"VALUE":0.015,"INDEX_IN_TRANSACTION":0,"SCRIPT_PUB_KEY":{"ASM":"OP_HASH160 3d26f38127c38d328f850efcb9aa72cf308c3a73 OP_EQUAL","DESC":"addr(37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH)#q35hmxvj","HEX":"a9143d26f38127c38d328f850efcb9aa72cf308c3a7387","ADDRESS":"37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH","TYPE":"scripthash"}},"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}}}},"TRANSACTION_OUTPUTS":{"type":"array","description":"The destination of funds in a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}},"SOURCE_HASH":{"type":"string","description":"Transaction source hash.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MINT":{"type":"integer","description":"","example":0},"REQUEST_ID":{"type":"string","description":"","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"REFUND_TO":{"type":"string","description":"The address to which any potential refunds from failed transactions or excess fees will be sent.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"L1_BASE_FEE":{"type":"integer","description":"The base fee required for transactions on Layer 1.","example":0},"DEPOSIT_VALUE":{"type":"integer","description":"The amount of cryptocurrency being deposited into the Layer 2 network.","example":0},"RETRY_TO":{"type":"string","description":"The address to which a transaction should be retried or redirected.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"RETRY_VALUE":{"type":"integer","description":"The amount of value associated with a transaction retry.","example":0},"RETRY_DATA":{"type":"string","description":"Additional data or parameters required for retrying a transaction.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"BENEFICIARY":{"type":"string","description":"The recipient address designated to receive the cryptocurrency.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_SUBMISSION_FEE":{"type":"integer","description":"The maximum fee a user is willing to pay for submitting a transaction.","example":0},"TICKET_ID":{"type":"string","description":"An identifier for a transaction ticket, used to track and manage queued or pending transactions.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_REFUND":{"type":"integer","description":"The maximum amount of funds that can be refunded in a transaction.","example":0},"SUBMISSION_FEE_REFUND":{"type":"integer","description":"The portion of the submission fee that is refunded if a transaction is not processed as expected.","example":0}}},"example":[],"x-cc-api-group":"TRANSACTIONS"},"ORPHAN_TRACES":{"type":"array","description":"Traces that were part of blocks that were not included in the main blockchain due to a fork or reorganization.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}},"example":[],"x-cc-api-group":"ORPHAN_TRACES"},"UNCLES":{"type":"array","description":"The current block uncles","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1027"}}},"example":[],"x-cc-api-group":"UNCLES"},"WITHDRAWALS":{"type":"array","description":"The current block withdrawals","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1028"},"INDEX":{"type":"integer","description":"The unique identifier or index associated with a blockchain withdrawal transaction. It helps in keeping track of individual withdrawals and organizing them in a sequential or ordered manner.","example":1},"VALIDATOR_INDEX":{"type":"integer","description":"The identifier of the validator or node that approved or validated the withdrawal transaction. In proof-of-stake or similar consensus mechanisms, validators play a crucial role in ensuring the legitimacy of transactions, and this field ties a withdrawal to a specific validator.","example":145205},"ADDRESS":{"type":"string","description":"The destination address to which the withdrawn cryptocurrency is being sent. This address is usually a cryptographic public key or a combination of alphanumeric characters that uniquely identifies the recipient's wallet or account on the blockchain.","example":"0xf7c6c5d35cc24beeed0c93ff2acb6f7f3e2b89aa"},"AMOUNT":{"type":"integer","description":"The quantity of cryptocurrency being withdrawn in the transaction. It specifies the numerical value of the cryptocurrency units being transferred from the withdrawal source to the recipient's address.","example":13106144},"UNIT":{"type":"string","description":"The type of cryptocurrency being withdrawn. It could be a symbol or code that represents the specific cryptocurrency asset being transferred, such as \"BTC\" for Bitcoin or \"GWEI\" for Ethereum.","example":"GWEI"}}},"example":[],"x-cc-api-group":"WITHDRAWALS"}}},"ETH_FULL_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ETH_FULL_BLOCK"},"Err":{"type":"object","properties":{}}}},"ETH_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg, this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false},"NUMBER":{"type":"integer","description":"The current block number","example":2},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1230940800},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200},"RECEIVED_TIMESTAMP_NS":{"type":"integer","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","format":"unix_timestamp","example":0},"METADATA":{"type":"object","description":"The current block full metadata includes block data, transactions, logs.","properties":{},"example":{}},"TRANSACTION_RECEIPTS":{"type":"array","description":"The current block transaction receipts","items":{"type":"string"},"example":[]},"TRACES":{"type":"array","description":"The current block traces","items":{"type":"string"},"example":[]},"BLOB_TRANSACTIONS":{"type":"array","description":"The current block blob transactions","items":{"type":"string"},"example":[]}}},"ETH_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ETH_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"BNB_FULL_BLOCK":{"type":"object","x-visible-in-ai":true,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1025","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind","x-cc-api-group":"ID"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1,"x-cc-api-group":"ID"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg? this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false,"x-cc-api-group":"ID"},"NUMBER":{"type":"integer","description":"The current block number","example":46147,"x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1438918233,"x-cc-api-group":"ID"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200,"x-cc-api-group":"ID"},"METADATA":{"type":"object","description":"The current block full metadata","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1021"},"NUMBER":{"type":"integer","description":"The sequential order of the block within the blockchain. Each block's number is one greater than the number of the previous block.","example":2},"TIMESTAMP":{"type":"number","description":"The exact time when the block was mined. It's a crucial piece of information for tracking the chronological order of blocks.","example":1438270017,"format":"unix_timestamp"},"HASH":{"type":"string","description":"The unique identifier for the block, generated using cryptographic algorithms. It represents the content of the block and is used for verification and linking blocks together.","example":"0xb495a1d7e6663152ae92708da4843337b958146015a2802f4193a410044698c9"},"PARENT_HASH":{"type":"string","description":"The hash of the previous block in the blockchain. It establishes the chronological link between blocks.","example":"00x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6xf"},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where transactions are finalized.","example":2},"CONFIRMATIONS":{"type":"integer","description":"The number of blocks added to the blockchain after this block. More confirmations generally mean a higher degree of security and acceptance in the network.","example":0},"VERSION":{"type":"integer","description":"A version number indicating which set of block validation rules to follow. Miners can use this to signal readiness to enforce network upgrades.","example":0},"NONCE":{"type":"string","description":"This is a random number used in the process of mining. It's combined with other block data to create a hash that meets specific mining criteria.","example":"0xb853fa261a86aa9e"},"BITS":{"type":"string","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":"17035a59"},"TARGET":{"type":"string","description":"","example":"000000000000000000025ced0000000000000000000000000000000000000000"},"SHA3_UNCLES":{"type":"string","description":"This stores the hash of the block's uncles, which are valid blocks that were not included in the main blockchain but can provide additional rewards to miners.","example":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"MILLI_TIMESTAMP":{"type":"integer","description":"","example":0},"TRANSACTIONS_ROOT":{"type":"string","description":"The hash of the root node of the Merkle tree that organizes the transactions in the block. It enables quick verification of included transactions.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"STATE_ROOT":{"type":"string","description":"This hash represents the state of the blockchain after all transactions in the block have been executed. It's used to ensure the consistency of the blockchain's state.","example":"0x4943d941637411107494da9ec8bc04359d731bfd08b72b4d0edcbd4cd2ecb341"},"MERKLE_ROOT":{"type":"string","description":"The Merkle root hash, which summarizes all the transactions included in the block. It ensures the integrity of the transactions.","example":"04d7486fa71ef6061469a55dc0fdeb634d3e9849dd0ee829668720524d8178f3"},"RECEIPTS_ROOT":{"type":"string","description":"This is similar to the transactions root, the receipts root hash is the root of a Merkle tree, but it stores the receipts of transactions, including information about their success or failure.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"REQUESTS_HASH":{"type":"string","description":"","example":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"SEND_COUNT":{"type":"integer","description":"The total number of messages or transactions that have been sent from Layer 2 to Layer 1.","example":0},"SEND_ROOT":{"type":"string","description":"Merkle root used to track messages sent from Layer 2 to Layer 1.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"MINER":{"type":"string","description":"This specifies the address of the miner who successfully mined the block. This miner is rewarded with cryptocurrency for their effort.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"MIX_HASH":{"type":"string","description":"This is a 256-bit hash value. It's essentially a part of the proof-of-work mechanism used in Ethereum to secure the blockchain. This hash is derived from the mixing of various components of the block, including the nonce, timestamp, previous block's hash, and more.","example":"0x2f0790c5aa31ab94195e1f6443d645af5b75c46c04fbf9911711198a0ce8fdda"},"DIFFICULTY":{"type":"integer","description":"This indicates how hard it was to mine the block. It's adjusted based on the overall network's hash rate to maintain a consistent block generation rate.","example":17163096064},"TOTAL_DIFFICULTY":{"type":"integer","description":"This field accumulates the difficulty values of all previous blocks, providing a measure of the blockchain's security.","example":51514445824},"CHAIN_WORK":{"type":"string","description":"The total cumulative amount of work in the blockchain up to and including this block. It's a measure of the blockchain's security.","example":"00000000000000000000000000000000000000007051baf97bac4bdfd3975a78"},"SIZE":{"type":"integer","description":"The size of the block in bytes. It includes all the data and metadata within the block.","example":544},"WEIGHT":{"type":"integer","description":"A metric for the block's size that considers both the non-SegWit and SegWit data, used to ensure blocks remain within the maximum block weight.","example":3993394},"BLOCK_TIME":{"type":"integer","description":"The time taken in seconds between mining the previous and current block. It's an important metric for understanding the network's performance and stability.","example":29},"MEDIAN_TIME":{"type":"integer","description":"The median time of the last 11 blocks. It's used to ensure the network's time consistency.","example":1711120689},"AUTHOR":{"type":"string","description":"","example":"0xd883010f0b846765746888676f312e32342e32856c696e7578"},"EXTRA_DATA":{"type":"string","description":"This allows miners to include arbitrary information in the block. It's often used to add contextual information or messages.","example":"\u0000Geth/v1.0.0-0cdc7647/linux/go1.4"},"GAS_LIMIT":{"type":"integer","description":"The maximum amount of computational work a block can contain. Each transaction consumes a specific amount of gas, and this limit prevents abuse of the network's resources.","example":5000},"GAS_USED":{"type":"integer","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":0},"TRANSACTION_COUNT":{"type":"integer","description":"This indicates how many transactions are included in the block.","example":0},"BASE_FEE_PER_GAS":{"type":"integer","description":"The base fee for each unit of gas in transactions. It's part of Ethereum's fee market mechanism.","example":null},"WITHDRAWALS_ROOT":{"type":"string","description":"The hash value that represents a data structure containing information about the withdrawals that occurred in the block.","example":null},"BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by blob transactions within the block.","example":null},"EXCESS_BLOB_GAS":{"type":"string","description":"The amount of gas exceeding the standard limit for blob transactions.","example":null}},"example":{},"x-cc-api-group":"METADATA"},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1022"},"HASH":{"type":"string","description":"Transaction internal mapped hash. (For BTC transactions without SegWit data, this is the same as the txid. For SegWit transactions, this represents the hash of the transaction including the witness data).","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRANSACTION_TYPE":{"type":"integer","description":"The EIP-2718 type of this transaction envelope","example":0},"NONCE":{"type":"integer","description":"The number of transactions made by the sender prior to this one encoded as hexadecimal. It prevents duplicate transactions and maintains order in the blockchain.","example":0},"INDEX":{"type":"integer","description":"The position of the transaction within the block. Helps in identifying the order of transactions in the block.","example":0},"FROM_ADDRESS":{"type":"string","description":"The address of the sender.","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"TO_ADDRESS":{"type":"string","description":"The address of the recipient. Null when its a contract creation transaction","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"VALUE":{"type":"string","description":"The amount of cryptocurrency being transferred from the sender to the recipient.","example":31337},"GAS":{"type":"string","description":"The amount of computational work a transaction requires to be executed. This is used to determine the fees paid by the sender to incentivize miners to include the transaction in a block.","example":21000},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"L1_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where the transaction was included.","example":1},"L1_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the base fee on Layer 1 for the transaction.","example":21000},"L1_BLOB_BASE_FEE":{"type":"string","description":"The base fee for processing blob transactions on Layer 1.","example":21000},"L1_BLOB_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the blob base fee on Layer 1.","example":21000},"L1_FEE":{"type":"string","description":"The total fee paid for processing the transaction on Layer 1.","example":21000},"L1_GAS_PRICE":{"type":"string","description":"The price per unit of gas for executing the transaction on Layer 1.","example":21000},"DEPOSIT_NONCE":{"type":"integer","description":"A unique number associated with the deposit transaction to ensure the uniquness and order of deposit transactions.","example":12700001},"DEPOSIT_RECEIPT_VERSION":{"type":"integer","description":"The version number of the deposit receipt, indicating the format version used.","example":1},"GAS_PRICE":{"type":"string","description":"The price the sender is willing to pay for each unit of gas. Together with the gas limit, it determines the total fee for the transaction.","example":50000000000000},"INPUT":{"type":"string","description":"The data associated with the transaction, often used in smart contract interactions. It can contain parameters and instructions for contract execution.","example":"0x"},"RECEIPT_BLOB_GAS_PRICE":{"type":"string","description":"The total gas price of the transaction blobs.","example":21000},"RECEIPT_BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction blobs.","example":21000},"RECEIPT_CUMULATIVE_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction and all preceding transactions within the same block.","example":21000},"RECEIPT_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"RECEIPT_CONTRACT_ADDRESS":{"type":"string","description":"This is the address created when a contract is deployed. The *TO* field should be null in this case.","example":null},"RECEIPT_ROOT":{"type":"string","description":"Only transactions included in blocks before the Byzantium Hard Fork have this field, as it was replaced by the *STATUS* field.","example":null},"RECEIPT_STATUS":{"type":"integer","description":"The status of a transaction is \"1\" if successful or \"0\" if it was a failure or reverted. Only transactions included in blocks post-Byzantium Hard Fork have this field.","example":1},"RECEIPT_TIMEBOOSTED":{"type":"boolean","description":"","example":true},"MAX_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for a transaction to be included promptly in a block.","example":null},"MAX_PRIORITY_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"MAX_FEE_PER_BLOB_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"RECEIPT_EFFECTIVE_GAS_PRICE":{"type":"string","description":"The total base charge plus tip paid for each unit of gas.","example":50000000000000},"ACCESS_LIST":{"type":"array","description":"This causes a transaction to warm (i.e. pre-cache) another addresses state and the specified storage keys, Available on EIP-2930 transactions.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"AUTHORIZATION_LIST":{"type":"array","description":"","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"ECDSA_V":{"type":"integer","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. This value helps to recover which public key was used to sign the transaction. Calculated as (CHAIN_ID * 2 + 35) or (CHAIN_ID * 2 + 36).","example":28},"ECDSA_R":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0"},"ECDSA_S":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"},"Y_PARITY":{"type":"string","description":"This is a recent addition from July 2023 and could be used instead of the ECDSA_V. ECDSA_V would be used for backward compatibility.","example":"0x0"},"TRACES":{"type":"array","description":"The detailed records of the steps and interactions that occured during the execution of this transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}}},"LOGS":{"type":"array","description":"The chronological records of all activities such as transaction executions, contract interactions, errors, and changes that occur within a blockchain network.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1024"},"ADDRESS":{"type":"string","description":"The address of the contract or account that generated the log entry. It serves as an identifier for the source of the event or action that triggered the log.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"INDEX":{"type":"integer","description":"The position of the log entry within the sequence of logs generated by a transaction. It's usually an incremental integer starting from 0 for the first log in a transaction. This field helps in distinguishing and organizing logs generated during a transaction.","example":0},"DATA":{"type":"string","description":"This contains the arbitrary data associated with the log entry. This data can vary depending on the specific smart contract and event that generated the log. It might include relevant information about the state change or action represented by the log.","example":"0x0000000000000000000000000000000000000000000000013125faba00000000"},"TOPICS":{"type":"array","description":"An array of one or more indexed event topics. These topics are hash values of event signatures or indexed arguments. They provide a way to filter and search for specific types of events within the logs efficiently.","example":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000007054b0f980a7eb5b3a6b3446f3c947d80162775c","0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80"],"items":{"type":"string"}},"REMOVED":{"type":"boolean","description":"A a boolean indicator that signals whether the log entry has been removed or undone due to a chain reorganization or a consensus rule change. It helps applications differentiate between active and reverted logs. It is \"true\" if log was removed, otherwise false.","example":false}}}},"BLOBS":{"type":"array","description":"The current transaction blobs, null when there are no blobs attached to the transaction.","example":[],"items":{"type":"string"}},"HEX":{"type":"string","description":"The raw hexadecimal representation of the entire transaction data.","example":"0x"},"TRANSACTION_INPUTS":{"type":"array","description":"The source of funds for a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1047"},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"96772166abc6c3348e2ebf7c5a0f0297a99c19f8eb7479635f93caccfc4e0374"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"INDEX_IN_TRANSACTION":{"type":"integer","description":"The position of a specific input or output within a transaction.","example":20},"SEQUENCE":{"type":"integer","description":"A number used to specify the order of transaction.","example":4294967295},"COINBASE":{"type":"string","description":"A special type of transaction input that is used to reward miners with newly created bitcoins.","example":""},"TX_IN_WITNESS":{"type":"string","description":"","example":["924b2624416402a52ed7cf4eba6b2c535d2def8e649a74ed97aaca5ec54881ef3b34da68bb13d76d6b420e60297a9247cb081d1e59cb2c260b1509cff25d4b31","204c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612eac0063036f7264010b2047f22ed15d3082f5e9a005864528e4f991ade841a9c5846e2c118425878b6be1010d09b530368c74df10a30368","c04c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612e"]},"SCRIPT_SIG":{"type":"object","description":"","example":{"ASM":"","HEX":""}},"SOURCE_TRANSACTION_OUTPUT":{"type":"object","description":"","example":{"TYPE":"1048","BLOCK_NUMBER":840017,"BLOCK_TIMESTAMP":1713580375,"VALUE":0.015,"INDEX_IN_TRANSACTION":0,"SCRIPT_PUB_KEY":{"ASM":"OP_HASH160 3d26f38127c38d328f850efcb9aa72cf308c3a73 OP_EQUAL","DESC":"addr(37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH)#q35hmxvj","HEX":"a9143d26f38127c38d328f850efcb9aa72cf308c3a7387","ADDRESS":"37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH","TYPE":"scripthash"}},"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}}}},"TRANSACTION_OUTPUTS":{"type":"array","description":"The destination of funds in a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}},"SOURCE_HASH":{"type":"string","description":"Transaction source hash.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MINT":{"type":"integer","description":"","example":0},"REQUEST_ID":{"type":"string","description":"","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"REFUND_TO":{"type":"string","description":"The address to which any potential refunds from failed transactions or excess fees will be sent.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"L1_BASE_FEE":{"type":"integer","description":"The base fee required for transactions on Layer 1.","example":0},"DEPOSIT_VALUE":{"type":"integer","description":"The amount of cryptocurrency being deposited into the Layer 2 network.","example":0},"RETRY_TO":{"type":"string","description":"The address to which a transaction should be retried or redirected.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"RETRY_VALUE":{"type":"integer","description":"The amount of value associated with a transaction retry.","example":0},"RETRY_DATA":{"type":"string","description":"Additional data or parameters required for retrying a transaction.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"BENEFICIARY":{"type":"string","description":"The recipient address designated to receive the cryptocurrency.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_SUBMISSION_FEE":{"type":"integer","description":"The maximum fee a user is willing to pay for submitting a transaction.","example":0},"TICKET_ID":{"type":"string","description":"An identifier for a transaction ticket, used to track and manage queued or pending transactions.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_REFUND":{"type":"integer","description":"The maximum amount of funds that can be refunded in a transaction.","example":0},"SUBMISSION_FEE_REFUND":{"type":"integer","description":"The portion of the submission fee that is refunded if a transaction is not processed as expected.","example":0}}},"example":[],"x-cc-api-group":"TRANSACTIONS"},"ORPHAN_TRACES":{"type":"array","description":"Traces that were part of blocks that were not included in the main blockchain due to a fork or reorganization.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}},"example":[],"x-cc-api-group":"ORPHAN_TRACES"},"UNCLES":{"type":"array","description":"The current block uncles","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1027"}}},"example":[],"x-cc-api-group":"UNCLES"},"WITHDRAWALS":{"type":"array","description":"The current block withdrawals","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1028"},"INDEX":{"type":"integer","description":"The unique identifier or index associated with a blockchain withdrawal transaction. It helps in keeping track of individual withdrawals and organizing them in a sequential or ordered manner.","example":1},"VALIDATOR_INDEX":{"type":"integer","description":"The identifier of the validator or node that approved or validated the withdrawal transaction. In proof-of-stake or similar consensus mechanisms, validators play a crucial role in ensuring the legitimacy of transactions, and this field ties a withdrawal to a specific validator.","example":145205},"ADDRESS":{"type":"string","description":"The destination address to which the withdrawn cryptocurrency is being sent. This address is usually a cryptographic public key or a combination of alphanumeric characters that uniquely identifies the recipient's wallet or account on the blockchain.","example":"0xf7c6c5d35cc24beeed0c93ff2acb6f7f3e2b89aa"},"AMOUNT":{"type":"integer","description":"The quantity of cryptocurrency being withdrawn in the transaction. It specifies the numerical value of the cryptocurrency units being transferred from the withdrawal source to the recipient's address.","example":13106144},"UNIT":{"type":"string","description":"The type of cryptocurrency being withdrawn. It could be a symbol or code that represents the specific cryptocurrency asset being transferred, such as \"BTC\" for Bitcoin or \"GWEI\" for Ethereum.","example":"GWEI"}}},"example":[],"x-cc-api-group":"WITHDRAWALS"}}},"BNB_FULL_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BNB_FULL_BLOCK"},"Err":{"type":"object","properties":{}}}},"BNB_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg, this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false},"NUMBER":{"type":"integer","description":"The current block number","example":2},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1230940800},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200},"RECEIVED_TIMESTAMP_NS":{"type":"integer","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","format":"unix_timestamp","example":0},"METADATA":{"type":"object","description":"The current block full metadata includes block data, transactions, logs.","properties":{},"example":{}},"TRANSACTION_RECEIPTS":{"type":"array","description":"The current block transaction receipts","items":{"type":"string"},"example":[]},"TRACES":{"type":"array","description":"The current block traces","items":{"type":"string"},"example":[]}}},"BNB_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BNB_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"BTC_FULL_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1025","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind","x-cc-api-group":"ID"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg? this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false,"x-cc-api-group":"ID"},"NUMBER":{"type":"integer","description":"The current block number","example":46147,"x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1438918233,"x-cc-api-group":"ID"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200,"x-cc-api-group":"ID"},"METADATA":{"type":"object","description":"The current block full metadata","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1021"},"NUMBER":{"type":"integer","description":"The sequential order of the block within the blockchain. Each block's number is one greater than the number of the previous block.","example":2},"TIMESTAMP":{"type":"number","description":"The exact time when the block was mined. It's a crucial piece of information for tracking the chronological order of blocks.","example":1438270017,"format":"unix_timestamp"},"HASH":{"type":"string","description":"The unique identifier for the block, generated using cryptographic algorithms. It represents the content of the block and is used for verification and linking blocks together.","example":"0xb495a1d7e6663152ae92708da4843337b958146015a2802f4193a410044698c9"},"PARENT_HASH":{"type":"string","description":"The hash of the previous block in the blockchain. It establishes the chronological link between blocks.","example":"00x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6xf"},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where transactions are finalized.","example":2},"CONFIRMATIONS":{"type":"integer","description":"The number of blocks added to the blockchain after this block. More confirmations generally mean a higher degree of security and acceptance in the network.","example":0},"VERSION":{"type":"integer","description":"A version number indicating which set of block validation rules to follow. Miners can use this to signal readiness to enforce network upgrades.","example":0},"NONCE":{"type":"string","description":"This is a random number used in the process of mining. It's combined with other block data to create a hash that meets specific mining criteria.","example":"0xb853fa261a86aa9e"},"BITS":{"type":"string","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":"17035a59"},"TARGET":{"type":"string","description":"","example":"000000000000000000025ced0000000000000000000000000000000000000000"},"SHA3_UNCLES":{"type":"string","description":"This stores the hash of the block's uncles, which are valid blocks that were not included in the main blockchain but can provide additional rewards to miners.","example":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"MILLI_TIMESTAMP":{"type":"integer","description":"","example":0},"TRANSACTIONS_ROOT":{"type":"string","description":"The hash of the root node of the Merkle tree that organizes the transactions in the block. It enables quick verification of included transactions.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"STATE_ROOT":{"type":"string","description":"This hash represents the state of the blockchain after all transactions in the block have been executed. It's used to ensure the consistency of the blockchain's state.","example":"0x4943d941637411107494da9ec8bc04359d731bfd08b72b4d0edcbd4cd2ecb341"},"MERKLE_ROOT":{"type":"string","description":"The Merkle root hash, which summarizes all the transactions included in the block. It ensures the integrity of the transactions.","example":"04d7486fa71ef6061469a55dc0fdeb634d3e9849dd0ee829668720524d8178f3"},"RECEIPTS_ROOT":{"type":"string","description":"This is similar to the transactions root, the receipts root hash is the root of a Merkle tree, but it stores the receipts of transactions, including information about their success or failure.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"REQUESTS_HASH":{"type":"string","description":"","example":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"SEND_COUNT":{"type":"integer","description":"The total number of messages or transactions that have been sent from Layer 2 to Layer 1.","example":0},"SEND_ROOT":{"type":"string","description":"Merkle root used to track messages sent from Layer 2 to Layer 1.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"MINER":{"type":"string","description":"This specifies the address of the miner who successfully mined the block. This miner is rewarded with cryptocurrency for their effort.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"MIX_HASH":{"type":"string","description":"This is a 256-bit hash value. It's essentially a part of the proof-of-work mechanism used in Ethereum to secure the blockchain. This hash is derived from the mixing of various components of the block, including the nonce, timestamp, previous block's hash, and more.","example":"0x2f0790c5aa31ab94195e1f6443d645af5b75c46c04fbf9911711198a0ce8fdda"},"DIFFICULTY":{"type":"integer","description":"This indicates how hard it was to mine the block. It's adjusted based on the overall network's hash rate to maintain a consistent block generation rate.","example":17163096064},"TOTAL_DIFFICULTY":{"type":"integer","description":"This field accumulates the difficulty values of all previous blocks, providing a measure of the blockchain's security.","example":51514445824},"CHAIN_WORK":{"type":"string","description":"The total cumulative amount of work in the blockchain up to and including this block. It's a measure of the blockchain's security.","example":"00000000000000000000000000000000000000007051baf97bac4bdfd3975a78"},"SIZE":{"type":"integer","description":"The size of the block in bytes. It includes all the data and metadata within the block.","example":544},"WEIGHT":{"type":"integer","description":"A metric for the block's size that considers both the non-SegWit and SegWit data, used to ensure blocks remain within the maximum block weight.","example":3993394},"BLOCK_TIME":{"type":"integer","description":"The time taken in seconds between mining the previous and current block. It's an important metric for understanding the network's performance and stability.","example":29},"MEDIAN_TIME":{"type":"integer","description":"The median time of the last 11 blocks. It's used to ensure the network's time consistency.","example":1711120689},"AUTHOR":{"type":"string","description":"","example":"0xd883010f0b846765746888676f312e32342e32856c696e7578"},"EXTRA_DATA":{"type":"string","description":"This allows miners to include arbitrary information in the block. It's often used to add contextual information or messages.","example":"\u0000Geth/v1.0.0-0cdc7647/linux/go1.4"},"GAS_LIMIT":{"type":"integer","description":"The maximum amount of computational work a block can contain. Each transaction consumes a specific amount of gas, and this limit prevents abuse of the network's resources.","example":5000},"GAS_USED":{"type":"integer","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":0},"TRANSACTION_COUNT":{"type":"integer","description":"This indicates how many transactions are included in the block.","example":0},"BASE_FEE_PER_GAS":{"type":"integer","description":"The base fee for each unit of gas in transactions. It's part of Ethereum's fee market mechanism.","example":null},"WITHDRAWALS_ROOT":{"type":"string","description":"The hash value that represents a data structure containing information about the withdrawals that occurred in the block.","example":null},"BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by blob transactions within the block.","example":null},"EXCESS_BLOB_GAS":{"type":"string","description":"The amount of gas exceeding the standard limit for blob transactions.","example":null}},"example":{},"x-cc-api-group":"METADATA"},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1022"},"HASH":{"type":"string","description":"Transaction internal mapped hash. (For BTC transactions without SegWit data, this is the same as the txid. For SegWit transactions, this represents the hash of the transaction including the witness data).","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRANSACTION_TYPE":{"type":"integer","description":"The EIP-2718 type of this transaction envelope","example":0},"NONCE":{"type":"integer","description":"The number of transactions made by the sender prior to this one encoded as hexadecimal. It prevents duplicate transactions and maintains order in the blockchain.","example":0},"INDEX":{"type":"integer","description":"The position of the transaction within the block. Helps in identifying the order of transactions in the block.","example":0},"FROM_ADDRESS":{"type":"string","description":"The address of the sender.","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"TO_ADDRESS":{"type":"string","description":"The address of the recipient. Null when its a contract creation transaction","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"VALUE":{"type":"string","description":"The amount of cryptocurrency being transferred from the sender to the recipient.","example":31337},"GAS":{"type":"string","description":"The amount of computational work a transaction requires to be executed. This is used to determine the fees paid by the sender to incentivize miners to include the transaction in a block.","example":21000},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"L1_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where the transaction was included.","example":1},"L1_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the base fee on Layer 1 for the transaction.","example":21000},"L1_BLOB_BASE_FEE":{"type":"string","description":"The base fee for processing blob transactions on Layer 1.","example":21000},"L1_BLOB_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the blob base fee on Layer 1.","example":21000},"L1_FEE":{"type":"string","description":"The total fee paid for processing the transaction on Layer 1.","example":21000},"L1_GAS_PRICE":{"type":"string","description":"The price per unit of gas for executing the transaction on Layer 1.","example":21000},"DEPOSIT_NONCE":{"type":"integer","description":"A unique number associated with the deposit transaction to ensure the uniquness and order of deposit transactions.","example":12700001},"DEPOSIT_RECEIPT_VERSION":{"type":"integer","description":"The version number of the deposit receipt, indicating the format version used.","example":1},"GAS_PRICE":{"type":"string","description":"The price the sender is willing to pay for each unit of gas. Together with the gas limit, it determines the total fee for the transaction.","example":50000000000000},"INPUT":{"type":"string","description":"The data associated with the transaction, often used in smart contract interactions. It can contain parameters and instructions for contract execution.","example":"0x"},"RECEIPT_BLOB_GAS_PRICE":{"type":"string","description":"The total gas price of the transaction blobs.","example":21000},"RECEIPT_BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction blobs.","example":21000},"RECEIPT_CUMULATIVE_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction and all preceding transactions within the same block.","example":21000},"RECEIPT_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"RECEIPT_CONTRACT_ADDRESS":{"type":"string","description":"This is the address created when a contract is deployed. The *TO* field should be null in this case.","example":null},"RECEIPT_ROOT":{"type":"string","description":"Only transactions included in blocks before the Byzantium Hard Fork have this field, as it was replaced by the *STATUS* field.","example":null},"RECEIPT_STATUS":{"type":"integer","description":"The status of a transaction is \"1\" if successful or \"0\" if it was a failure or reverted. Only transactions included in blocks post-Byzantium Hard Fork have this field.","example":1},"RECEIPT_TIMEBOOSTED":{"type":"boolean","description":"","example":true},"MAX_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for a transaction to be included promptly in a block.","example":null},"MAX_PRIORITY_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"MAX_FEE_PER_BLOB_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"RECEIPT_EFFECTIVE_GAS_PRICE":{"type":"string","description":"The total base charge plus tip paid for each unit of gas.","example":50000000000000},"ACCESS_LIST":{"type":"array","description":"This causes a transaction to warm (i.e. pre-cache) another addresses state and the specified storage keys, Available on EIP-2930 transactions.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"AUTHORIZATION_LIST":{"type":"array","description":"","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"ECDSA_V":{"type":"integer","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. This value helps to recover which public key was used to sign the transaction. Calculated as (CHAIN_ID * 2 + 35) or (CHAIN_ID * 2 + 36).","example":28},"ECDSA_R":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0"},"ECDSA_S":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"},"Y_PARITY":{"type":"string","description":"This is a recent addition from July 2023 and could be used instead of the ECDSA_V. ECDSA_V would be used for backward compatibility.","example":"0x0"},"TRACES":{"type":"array","description":"The detailed records of the steps and interactions that occured during the execution of this transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}}},"LOGS":{"type":"array","description":"The chronological records of all activities such as transaction executions, contract interactions, errors, and changes that occur within a blockchain network.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1024"},"ADDRESS":{"type":"string","description":"The address of the contract or account that generated the log entry. It serves as an identifier for the source of the event or action that triggered the log.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"INDEX":{"type":"integer","description":"The position of the log entry within the sequence of logs generated by a transaction. It's usually an incremental integer starting from 0 for the first log in a transaction. This field helps in distinguishing and organizing logs generated during a transaction.","example":0},"DATA":{"type":"string","description":"This contains the arbitrary data associated with the log entry. This data can vary depending on the specific smart contract and event that generated the log. It might include relevant information about the state change or action represented by the log.","example":"0x0000000000000000000000000000000000000000000000013125faba00000000"},"TOPICS":{"type":"array","description":"An array of one or more indexed event topics. These topics are hash values of event signatures or indexed arguments. They provide a way to filter and search for specific types of events within the logs efficiently.","example":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000007054b0f980a7eb5b3a6b3446f3c947d80162775c","0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80"],"items":{"type":"string"}},"REMOVED":{"type":"boolean","description":"A a boolean indicator that signals whether the log entry has been removed or undone due to a chain reorganization or a consensus rule change. It helps applications differentiate between active and reverted logs. It is \"true\" if log was removed, otherwise false.","example":false}}}},"BLOBS":{"type":"array","description":"The current transaction blobs, null when there are no blobs attached to the transaction.","example":[],"items":{"type":"string"}},"HEX":{"type":"string","description":"The raw hexadecimal representation of the entire transaction data.","example":"0x"},"TRANSACTION_INPUTS":{"type":"array","description":"The source of funds for a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1047"},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"96772166abc6c3348e2ebf7c5a0f0297a99c19f8eb7479635f93caccfc4e0374"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"INDEX_IN_TRANSACTION":{"type":"integer","description":"The position of a specific input or output within a transaction.","example":20},"SEQUENCE":{"type":"integer","description":"A number used to specify the order of transaction.","example":4294967295},"COINBASE":{"type":"string","description":"A special type of transaction input that is used to reward miners with newly created bitcoins.","example":""},"TX_IN_WITNESS":{"type":"string","description":"","example":["924b2624416402a52ed7cf4eba6b2c535d2def8e649a74ed97aaca5ec54881ef3b34da68bb13d76d6b420e60297a9247cb081d1e59cb2c260b1509cff25d4b31","204c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612eac0063036f7264010b2047f22ed15d3082f5e9a005864528e4f991ade841a9c5846e2c118425878b6be1010d09b530368c74df10a30368","c04c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612e"]},"SCRIPT_SIG":{"type":"object","description":"","example":{"ASM":"","HEX":""}},"SOURCE_TRANSACTION_OUTPUT":{"type":"object","description":"","example":{"TYPE":"1048","BLOCK_NUMBER":840017,"BLOCK_TIMESTAMP":1713580375,"VALUE":0.015,"INDEX_IN_TRANSACTION":0,"SCRIPT_PUB_KEY":{"ASM":"OP_HASH160 3d26f38127c38d328f850efcb9aa72cf308c3a73 OP_EQUAL","DESC":"addr(37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH)#q35hmxvj","HEX":"a9143d26f38127c38d328f850efcb9aa72cf308c3a7387","ADDRESS":"37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH","TYPE":"scripthash"}},"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}}}},"TRANSACTION_OUTPUTS":{"type":"array","description":"The destination of funds in a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}},"SOURCE_HASH":{"type":"string","description":"Transaction source hash.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MINT":{"type":"integer","description":"","example":0},"REQUEST_ID":{"type":"string","description":"","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"REFUND_TO":{"type":"string","description":"The address to which any potential refunds from failed transactions or excess fees will be sent.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"L1_BASE_FEE":{"type":"integer","description":"The base fee required for transactions on Layer 1.","example":0},"DEPOSIT_VALUE":{"type":"integer","description":"The amount of cryptocurrency being deposited into the Layer 2 network.","example":0},"RETRY_TO":{"type":"string","description":"The address to which a transaction should be retried or redirected.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"RETRY_VALUE":{"type":"integer","description":"The amount of value associated with a transaction retry.","example":0},"RETRY_DATA":{"type":"string","description":"Additional data or parameters required for retrying a transaction.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"BENEFICIARY":{"type":"string","description":"The recipient address designated to receive the cryptocurrency.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_SUBMISSION_FEE":{"type":"integer","description":"The maximum fee a user is willing to pay for submitting a transaction.","example":0},"TICKET_ID":{"type":"string","description":"An identifier for a transaction ticket, used to track and manage queued or pending transactions.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_REFUND":{"type":"integer","description":"The maximum amount of funds that can be refunded in a transaction.","example":0},"SUBMISSION_FEE_REFUND":{"type":"integer","description":"The portion of the submission fee that is refunded if a transaction is not processed as expected.","example":0}}},"example":[],"x-cc-api-group":"TRANSACTIONS"}}},"BTC_FULL_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BTC_FULL_BLOCK"},"Err":{"type":"object","properties":{}}}},"BTC_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg, this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false},"NUMBER":{"type":"integer","description":"The current block number","example":2},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1230940800},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200},"RECEIVED_TIMESTAMP_NS":{"type":"integer","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","format":"unix_timestamp","example":0},"METADATA":{"type":"object","description":"The current block full metadata includes block data, transactions, logs.","properties":{},"example":{}},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"string"},"example":[]}}},"BTC_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BTC_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"BASE_FULL_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1025","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind","x-cc-api-group":"ID"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1,"x-cc-api-group":"ID"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg? this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false,"x-cc-api-group":"ID"},"NUMBER":{"type":"integer","description":"The current block number","example":46147,"x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1438918233,"x-cc-api-group":"ID"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200,"x-cc-api-group":"ID"},"METADATA":{"type":"object","description":"The current block full metadata","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1021"},"NUMBER":{"type":"integer","description":"The sequential order of the block within the blockchain. Each block's number is one greater than the number of the previous block.","example":2},"TIMESTAMP":{"type":"number","description":"The exact time when the block was mined. It's a crucial piece of information for tracking the chronological order of blocks.","example":1438270017,"format":"unix_timestamp"},"HASH":{"type":"string","description":"The unique identifier for the block, generated using cryptographic algorithms. It represents the content of the block and is used for verification and linking blocks together.","example":"0xb495a1d7e6663152ae92708da4843337b958146015a2802f4193a410044698c9"},"PARENT_HASH":{"type":"string","description":"The hash of the previous block in the blockchain. It establishes the chronological link between blocks.","example":"00x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6xf"},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where transactions are finalized.","example":2},"CONFIRMATIONS":{"type":"integer","description":"The number of blocks added to the blockchain after this block. More confirmations generally mean a higher degree of security and acceptance in the network.","example":0},"VERSION":{"type":"integer","description":"A version number indicating which set of block validation rules to follow. Miners can use this to signal readiness to enforce network upgrades.","example":0},"NONCE":{"type":"string","description":"This is a random number used in the process of mining. It's combined with other block data to create a hash that meets specific mining criteria.","example":"0xb853fa261a86aa9e"},"BITS":{"type":"string","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":"17035a59"},"TARGET":{"type":"string","description":"","example":"000000000000000000025ced0000000000000000000000000000000000000000"},"SHA3_UNCLES":{"type":"string","description":"This stores the hash of the block's uncles, which are valid blocks that were not included in the main blockchain but can provide additional rewards to miners.","example":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"MILLI_TIMESTAMP":{"type":"integer","description":"","example":0},"TRANSACTIONS_ROOT":{"type":"string","description":"The hash of the root node of the Merkle tree that organizes the transactions in the block. It enables quick verification of included transactions.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"STATE_ROOT":{"type":"string","description":"This hash represents the state of the blockchain after all transactions in the block have been executed. It's used to ensure the consistency of the blockchain's state.","example":"0x4943d941637411107494da9ec8bc04359d731bfd08b72b4d0edcbd4cd2ecb341"},"MERKLE_ROOT":{"type":"string","description":"The Merkle root hash, which summarizes all the transactions included in the block. It ensures the integrity of the transactions.","example":"04d7486fa71ef6061469a55dc0fdeb634d3e9849dd0ee829668720524d8178f3"},"RECEIPTS_ROOT":{"type":"string","description":"This is similar to the transactions root, the receipts root hash is the root of a Merkle tree, but it stores the receipts of transactions, including information about their success or failure.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"REQUESTS_HASH":{"type":"string","description":"","example":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"SEND_COUNT":{"type":"integer","description":"The total number of messages or transactions that have been sent from Layer 2 to Layer 1.","example":0},"SEND_ROOT":{"type":"string","description":"Merkle root used to track messages sent from Layer 2 to Layer 1.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"MINER":{"type":"string","description":"This specifies the address of the miner who successfully mined the block. This miner is rewarded with cryptocurrency for their effort.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"MIX_HASH":{"type":"string","description":"This is a 256-bit hash value. It's essentially a part of the proof-of-work mechanism used in Ethereum to secure the blockchain. This hash is derived from the mixing of various components of the block, including the nonce, timestamp, previous block's hash, and more.","example":"0x2f0790c5aa31ab94195e1f6443d645af5b75c46c04fbf9911711198a0ce8fdda"},"DIFFICULTY":{"type":"integer","description":"This indicates how hard it was to mine the block. It's adjusted based on the overall network's hash rate to maintain a consistent block generation rate.","example":17163096064},"TOTAL_DIFFICULTY":{"type":"integer","description":"This field accumulates the difficulty values of all previous blocks, providing a measure of the blockchain's security.","example":51514445824},"CHAIN_WORK":{"type":"string","description":"The total cumulative amount of work in the blockchain up to and including this block. It's a measure of the blockchain's security.","example":"00000000000000000000000000000000000000007051baf97bac4bdfd3975a78"},"SIZE":{"type":"integer","description":"The size of the block in bytes. It includes all the data and metadata within the block.","example":544},"WEIGHT":{"type":"integer","description":"A metric for the block's size that considers both the non-SegWit and SegWit data, used to ensure blocks remain within the maximum block weight.","example":3993394},"BLOCK_TIME":{"type":"integer","description":"The time taken in seconds between mining the previous and current block. It's an important metric for understanding the network's performance and stability.","example":29},"MEDIAN_TIME":{"type":"integer","description":"The median time of the last 11 blocks. It's used to ensure the network's time consistency.","example":1711120689},"AUTHOR":{"type":"string","description":"","example":"0xd883010f0b846765746888676f312e32342e32856c696e7578"},"EXTRA_DATA":{"type":"string","description":"This allows miners to include arbitrary information in the block. It's often used to add contextual information or messages.","example":"\u0000Geth/v1.0.0-0cdc7647/linux/go1.4"},"GAS_LIMIT":{"type":"integer","description":"The maximum amount of computational work a block can contain. Each transaction consumes a specific amount of gas, and this limit prevents abuse of the network's resources.","example":5000},"GAS_USED":{"type":"integer","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":0},"TRANSACTION_COUNT":{"type":"integer","description":"This indicates how many transactions are included in the block.","example":0},"BASE_FEE_PER_GAS":{"type":"integer","description":"The base fee for each unit of gas in transactions. It's part of Ethereum's fee market mechanism.","example":null},"WITHDRAWALS_ROOT":{"type":"string","description":"The hash value that represents a data structure containing information about the withdrawals that occurred in the block.","example":null},"BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by blob transactions within the block.","example":null},"EXCESS_BLOB_GAS":{"type":"string","description":"The amount of gas exceeding the standard limit for blob transactions.","example":null}},"example":{},"x-cc-api-group":"METADATA"},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1022"},"HASH":{"type":"string","description":"Transaction internal mapped hash. (For BTC transactions without SegWit data, this is the same as the txid. For SegWit transactions, this represents the hash of the transaction including the witness data).","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRANSACTION_TYPE":{"type":"integer","description":"The EIP-2718 type of this transaction envelope","example":0},"NONCE":{"type":"integer","description":"The number of transactions made by the sender prior to this one encoded as hexadecimal. It prevents duplicate transactions and maintains order in the blockchain.","example":0},"INDEX":{"type":"integer","description":"The position of the transaction within the block. Helps in identifying the order of transactions in the block.","example":0},"FROM_ADDRESS":{"type":"string","description":"The address of the sender.","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"TO_ADDRESS":{"type":"string","description":"The address of the recipient. Null when its a contract creation transaction","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"VALUE":{"type":"string","description":"The amount of cryptocurrency being transferred from the sender to the recipient.","example":31337},"GAS":{"type":"string","description":"The amount of computational work a transaction requires to be executed. This is used to determine the fees paid by the sender to incentivize miners to include the transaction in a block.","example":21000},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"L1_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where the transaction was included.","example":1},"L1_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the base fee on Layer 1 for the transaction.","example":21000},"L1_BLOB_BASE_FEE":{"type":"string","description":"The base fee for processing blob transactions on Layer 1.","example":21000},"L1_BLOB_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the blob base fee on Layer 1.","example":21000},"L1_FEE":{"type":"string","description":"The total fee paid for processing the transaction on Layer 1.","example":21000},"L1_GAS_PRICE":{"type":"string","description":"The price per unit of gas for executing the transaction on Layer 1.","example":21000},"DEPOSIT_NONCE":{"type":"integer","description":"A unique number associated with the deposit transaction to ensure the uniquness and order of deposit transactions.","example":12700001},"DEPOSIT_RECEIPT_VERSION":{"type":"integer","description":"The version number of the deposit receipt, indicating the format version used.","example":1},"GAS_PRICE":{"type":"string","description":"The price the sender is willing to pay for each unit of gas. Together with the gas limit, it determines the total fee for the transaction.","example":50000000000000},"INPUT":{"type":"string","description":"The data associated with the transaction, often used in smart contract interactions. It can contain parameters and instructions for contract execution.","example":"0x"},"RECEIPT_BLOB_GAS_PRICE":{"type":"string","description":"The total gas price of the transaction blobs.","example":21000},"RECEIPT_BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction blobs.","example":21000},"RECEIPT_CUMULATIVE_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction and all preceding transactions within the same block.","example":21000},"RECEIPT_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"RECEIPT_CONTRACT_ADDRESS":{"type":"string","description":"This is the address created when a contract is deployed. The *TO* field should be null in this case.","example":null},"RECEIPT_ROOT":{"type":"string","description":"Only transactions included in blocks before the Byzantium Hard Fork have this field, as it was replaced by the *STATUS* field.","example":null},"RECEIPT_STATUS":{"type":"integer","description":"The status of a transaction is \"1\" if successful or \"0\" if it was a failure or reverted. Only transactions included in blocks post-Byzantium Hard Fork have this field.","example":1},"RECEIPT_TIMEBOOSTED":{"type":"boolean","description":"","example":true},"MAX_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for a transaction to be included promptly in a block.","example":null},"MAX_PRIORITY_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"MAX_FEE_PER_BLOB_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"RECEIPT_EFFECTIVE_GAS_PRICE":{"type":"string","description":"The total base charge plus tip paid for each unit of gas.","example":50000000000000},"ACCESS_LIST":{"type":"array","description":"This causes a transaction to warm (i.e. pre-cache) another addresses state and the specified storage keys, Available on EIP-2930 transactions.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"AUTHORIZATION_LIST":{"type":"array","description":"","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"ECDSA_V":{"type":"integer","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. This value helps to recover which public key was used to sign the transaction. Calculated as (CHAIN_ID * 2 + 35) or (CHAIN_ID * 2 + 36).","example":28},"ECDSA_R":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0"},"ECDSA_S":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"},"Y_PARITY":{"type":"string","description":"This is a recent addition from July 2023 and could be used instead of the ECDSA_V. ECDSA_V would be used for backward compatibility.","example":"0x0"},"TRACES":{"type":"array","description":"The detailed records of the steps and interactions that occured during the execution of this transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}}},"LOGS":{"type":"array","description":"The chronological records of all activities such as transaction executions, contract interactions, errors, and changes that occur within a blockchain network.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1024"},"ADDRESS":{"type":"string","description":"The address of the contract or account that generated the log entry. It serves as an identifier for the source of the event or action that triggered the log.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"INDEX":{"type":"integer","description":"The position of the log entry within the sequence of logs generated by a transaction. It's usually an incremental integer starting from 0 for the first log in a transaction. This field helps in distinguishing and organizing logs generated during a transaction.","example":0},"DATA":{"type":"string","description":"This contains the arbitrary data associated with the log entry. This data can vary depending on the specific smart contract and event that generated the log. It might include relevant information about the state change or action represented by the log.","example":"0x0000000000000000000000000000000000000000000000013125faba00000000"},"TOPICS":{"type":"array","description":"An array of one or more indexed event topics. These topics are hash values of event signatures or indexed arguments. They provide a way to filter and search for specific types of events within the logs efficiently.","example":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000007054b0f980a7eb5b3a6b3446f3c947d80162775c","0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80"],"items":{"type":"string"}},"REMOVED":{"type":"boolean","description":"A a boolean indicator that signals whether the log entry has been removed or undone due to a chain reorganization or a consensus rule change. It helps applications differentiate between active and reverted logs. It is \"true\" if log was removed, otherwise false.","example":false}}}},"BLOBS":{"type":"array","description":"The current transaction blobs, null when there are no blobs attached to the transaction.","example":[],"items":{"type":"string"}},"HEX":{"type":"string","description":"The raw hexadecimal representation of the entire transaction data.","example":"0x"},"TRANSACTION_INPUTS":{"type":"array","description":"The source of funds for a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1047"},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"96772166abc6c3348e2ebf7c5a0f0297a99c19f8eb7479635f93caccfc4e0374"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"INDEX_IN_TRANSACTION":{"type":"integer","description":"The position of a specific input or output within a transaction.","example":20},"SEQUENCE":{"type":"integer","description":"A number used to specify the order of transaction.","example":4294967295},"COINBASE":{"type":"string","description":"A special type of transaction input that is used to reward miners with newly created bitcoins.","example":""},"TX_IN_WITNESS":{"type":"string","description":"","example":["924b2624416402a52ed7cf4eba6b2c535d2def8e649a74ed97aaca5ec54881ef3b34da68bb13d76d6b420e60297a9247cb081d1e59cb2c260b1509cff25d4b31","204c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612eac0063036f7264010b2047f22ed15d3082f5e9a005864528e4f991ade841a9c5846e2c118425878b6be1010d09b530368c74df10a30368","c04c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612e"]},"SCRIPT_SIG":{"type":"object","description":"","example":{"ASM":"","HEX":""}},"SOURCE_TRANSACTION_OUTPUT":{"type":"object","description":"","example":{"TYPE":"1048","BLOCK_NUMBER":840017,"BLOCK_TIMESTAMP":1713580375,"VALUE":0.015,"INDEX_IN_TRANSACTION":0,"SCRIPT_PUB_KEY":{"ASM":"OP_HASH160 3d26f38127c38d328f850efcb9aa72cf308c3a73 OP_EQUAL","DESC":"addr(37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH)#q35hmxvj","HEX":"a9143d26f38127c38d328f850efcb9aa72cf308c3a7387","ADDRESS":"37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH","TYPE":"scripthash"}},"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}}}},"TRANSACTION_OUTPUTS":{"type":"array","description":"The destination of funds in a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}},"SOURCE_HASH":{"type":"string","description":"Transaction source hash.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MINT":{"type":"integer","description":"","example":0},"REQUEST_ID":{"type":"string","description":"","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"REFUND_TO":{"type":"string","description":"The address to which any potential refunds from failed transactions or excess fees will be sent.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"L1_BASE_FEE":{"type":"integer","description":"The base fee required for transactions on Layer 1.","example":0},"DEPOSIT_VALUE":{"type":"integer","description":"The amount of cryptocurrency being deposited into the Layer 2 network.","example":0},"RETRY_TO":{"type":"string","description":"The address to which a transaction should be retried or redirected.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"RETRY_VALUE":{"type":"integer","description":"The amount of value associated with a transaction retry.","example":0},"RETRY_DATA":{"type":"string","description":"Additional data or parameters required for retrying a transaction.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"BENEFICIARY":{"type":"string","description":"The recipient address designated to receive the cryptocurrency.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_SUBMISSION_FEE":{"type":"integer","description":"The maximum fee a user is willing to pay for submitting a transaction.","example":0},"TICKET_ID":{"type":"string","description":"An identifier for a transaction ticket, used to track and manage queued or pending transactions.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_REFUND":{"type":"integer","description":"The maximum amount of funds that can be refunded in a transaction.","example":0},"SUBMISSION_FEE_REFUND":{"type":"integer","description":"The portion of the submission fee that is refunded if a transaction is not processed as expected.","example":0}}},"example":[],"x-cc-api-group":"TRANSACTIONS"},"ORPHAN_TRACES":{"type":"array","description":"Traces that were part of blocks that were not included in the main blockchain due to a fork or reorganization.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}},"example":[],"x-cc-api-group":"ORPHAN_TRACES"},"UNCLES":{"type":"array","description":"The current block uncles","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1027"}}},"example":[],"x-cc-api-group":"UNCLES"},"WITHDRAWALS":{"type":"array","description":"The current block withdrawals","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1028"},"INDEX":{"type":"integer","description":"The unique identifier or index associated with a blockchain withdrawal transaction. It helps in keeping track of individual withdrawals and organizing them in a sequential or ordered manner.","example":1},"VALIDATOR_INDEX":{"type":"integer","description":"The identifier of the validator or node that approved or validated the withdrawal transaction. In proof-of-stake or similar consensus mechanisms, validators play a crucial role in ensuring the legitimacy of transactions, and this field ties a withdrawal to a specific validator.","example":145205},"ADDRESS":{"type":"string","description":"The destination address to which the withdrawn cryptocurrency is being sent. This address is usually a cryptographic public key or a combination of alphanumeric characters that uniquely identifies the recipient's wallet or account on the blockchain.","example":"0xf7c6c5d35cc24beeed0c93ff2acb6f7f3e2b89aa"},"AMOUNT":{"type":"integer","description":"The quantity of cryptocurrency being withdrawn in the transaction. It specifies the numerical value of the cryptocurrency units being transferred from the withdrawal source to the recipient's address.","example":13106144},"UNIT":{"type":"string","description":"The type of cryptocurrency being withdrawn. It could be a symbol or code that represents the specific cryptocurrency asset being transferred, such as \"BTC\" for Bitcoin or \"GWEI\" for Ethereum.","example":"GWEI"}}},"example":[],"x-cc-api-group":"WITHDRAWALS"}}},"BASE_FULL_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BASE_FULL_BLOCK"},"Err":{"type":"object","properties":{}}}},"BASE_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg, this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false},"NUMBER":{"type":"integer","description":"The current block number","example":2},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1230940800},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200},"RECEIVED_TIMESTAMP_NS":{"type":"integer","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","format":"unix_timestamp","example":0},"METADATA":{"type":"object","description":"The current block full metadata includes block data, transactions, logs.","properties":{},"example":{}},"TRANSACTION_RECEIPTS":{"type":"array","description":"The current block transaction receipts","items":{"type":"string"},"example":[]},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"string"},"example":[]},"TRACES":{"type":"array","description":"The current block traces","items":{"type":"string"},"example":[]}}},"BASE_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/BASE_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"ARB_FULL_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1025","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind","x-cc-api-group":"ID"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1,"x-cc-api-group":"ID"},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg? this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false,"x-cc-api-group":"ID"},"NUMBER":{"type":"integer","description":"The current block number","example":46147,"x-cc-api-group":"ID"},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1438918233,"x-cc-api-group":"ID"},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200,"x-cc-api-group":"ID"},"METADATA":{"type":"object","description":"The current block full metadata","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1021"},"NUMBER":{"type":"integer","description":"The sequential order of the block within the blockchain. Each block's number is one greater than the number of the previous block.","example":2},"TIMESTAMP":{"type":"number","description":"The exact time when the block was mined. It's a crucial piece of information for tracking the chronological order of blocks.","example":1438270017,"format":"unix_timestamp"},"HASH":{"type":"string","description":"The unique identifier for the block, generated using cryptographic algorithms. It represents the content of the block and is used for verification and linking blocks together.","example":"0xb495a1d7e6663152ae92708da4843337b958146015a2802f4193a410044698c9"},"PARENT_HASH":{"type":"string","description":"The hash of the previous block in the blockchain. It establishes the chronological link between blocks.","example":"00x88e96d4537bea4d9c05d12549907b32561d3bf31f45aae734cdc119f13406cb6xf"},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where transactions are finalized.","example":2},"CONFIRMATIONS":{"type":"integer","description":"The number of blocks added to the blockchain after this block. More confirmations generally mean a higher degree of security and acceptance in the network.","example":0},"VERSION":{"type":"integer","description":"A version number indicating which set of block validation rules to follow. Miners can use this to signal readiness to enforce network upgrades.","example":0},"NONCE":{"type":"string","description":"This is a random number used in the process of mining. It's combined with other block data to create a hash that meets specific mining criteria.","example":"0xb853fa261a86aa9e"},"BITS":{"type":"string","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":"17035a59"},"TARGET":{"type":"string","description":"","example":"000000000000000000025ced0000000000000000000000000000000000000000"},"SHA3_UNCLES":{"type":"string","description":"This stores the hash of the block's uncles, which are valid blocks that were not included in the main blockchain but can provide additional rewards to miners.","example":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"MILLI_TIMESTAMP":{"type":"integer","description":"","example":0},"TRANSACTIONS_ROOT":{"type":"string","description":"The hash of the root node of the Merkle tree that organizes the transactions in the block. It enables quick verification of included transactions.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"STATE_ROOT":{"type":"string","description":"This hash represents the state of the blockchain after all transactions in the block have been executed. It's used to ensure the consistency of the blockchain's state.","example":"0x4943d941637411107494da9ec8bc04359d731bfd08b72b4d0edcbd4cd2ecb341"},"MERKLE_ROOT":{"type":"string","description":"The Merkle root hash, which summarizes all the transactions included in the block. It ensures the integrity of the transactions.","example":"04d7486fa71ef6061469a55dc0fdeb634d3e9849dd0ee829668720524d8178f3"},"RECEIPTS_ROOT":{"type":"string","description":"This is similar to the transactions root, the receipts root hash is the root of a Merkle tree, but it stores the receipts of transactions, including information about their success or failure.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"REQUESTS_HASH":{"type":"string","description":"","example":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"SEND_COUNT":{"type":"integer","description":"The total number of messages or transactions that have been sent from Layer 2 to Layer 1.","example":0},"SEND_ROOT":{"type":"string","description":"Merkle root used to track messages sent from Layer 2 to Layer 1.","example":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},"MINER":{"type":"string","description":"This specifies the address of the miner who successfully mined the block. This miner is rewarded with cryptocurrency for their effort.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"MIX_HASH":{"type":"string","description":"This is a 256-bit hash value. It's essentially a part of the proof-of-work mechanism used in Ethereum to secure the blockchain. This hash is derived from the mixing of various components of the block, including the nonce, timestamp, previous block's hash, and more.","example":"0x2f0790c5aa31ab94195e1f6443d645af5b75c46c04fbf9911711198a0ce8fdda"},"DIFFICULTY":{"type":"integer","description":"This indicates how hard it was to mine the block. It's adjusted based on the overall network's hash rate to maintain a consistent block generation rate.","example":17163096064},"TOTAL_DIFFICULTY":{"type":"integer","description":"This field accumulates the difficulty values of all previous blocks, providing a measure of the blockchain's security.","example":51514445824},"CHAIN_WORK":{"type":"string","description":"The total cumulative amount of work in the blockchain up to and including this block. It's a measure of the blockchain's security.","example":"00000000000000000000000000000000000000007051baf97bac4bdfd3975a78"},"SIZE":{"type":"integer","description":"The size of the block in bytes. It includes all the data and metadata within the block.","example":544},"WEIGHT":{"type":"integer","description":"A metric for the block's size that considers both the non-SegWit and SegWit data, used to ensure blocks remain within the maximum block weight.","example":3993394},"BLOCK_TIME":{"type":"integer","description":"The time taken in seconds between mining the previous and current block. It's an important metric for understanding the network's performance and stability.","example":29},"MEDIAN_TIME":{"type":"integer","description":"The median time of the last 11 blocks. It's used to ensure the network's time consistency.","example":1711120689},"AUTHOR":{"type":"string","description":"","example":"0xd883010f0b846765746888676f312e32342e32856c696e7578"},"EXTRA_DATA":{"type":"string","description":"This allows miners to include arbitrary information in the block. It's often used to add contextual information or messages.","example":"\u0000Geth/v1.0.0-0cdc7647/linux/go1.4"},"GAS_LIMIT":{"type":"integer","description":"The maximum amount of computational work a block can contain. Each transaction consumes a specific amount of gas, and this limit prevents abuse of the network's resources.","example":5000},"GAS_USED":{"type":"integer","description":"The total amount of gas consumed by all transactions in the block. It helps in understanding the efficiency of transactions.","example":0},"TRANSACTION_COUNT":{"type":"integer","description":"This indicates how many transactions are included in the block.","example":0},"BASE_FEE_PER_GAS":{"type":"integer","description":"The base fee for each unit of gas in transactions. It's part of Ethereum's fee market mechanism.","example":null},"WITHDRAWALS_ROOT":{"type":"string","description":"The hash value that represents a data structure containing information about the withdrawals that occurred in the block.","example":null},"BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by blob transactions within the block.","example":null},"EXCESS_BLOB_GAS":{"type":"string","description":"The amount of gas exceeding the standard limit for blob transactions.","example":null}},"example":{},"x-cc-api-group":"METADATA"},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1022"},"HASH":{"type":"string","description":"Transaction internal mapped hash. (For BTC transactions without SegWit data, this is the same as the txid. For SegWit transactions, this represents the hash of the transaction including the witness data).","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRANSACTION_TYPE":{"type":"integer","description":"The EIP-2718 type of this transaction envelope","example":0},"NONCE":{"type":"integer","description":"The number of transactions made by the sender prior to this one encoded as hexadecimal. It prevents duplicate transactions and maintains order in the blockchain.","example":0},"INDEX":{"type":"integer","description":"The position of the transaction within the block. Helps in identifying the order of transactions in the block.","example":0},"FROM_ADDRESS":{"type":"string","description":"The address of the sender.","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"TO_ADDRESS":{"type":"string","description":"The address of the recipient. Null when its a contract creation transaction","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"VALUE":{"type":"string","description":"The amount of cryptocurrency being transferred from the sender to the recipient.","example":31337},"GAS":{"type":"string","description":"The amount of computational work a transaction requires to be executed. This is used to determine the fees paid by the sender to incentivize miners to include the transaction in a block.","example":21000},"LOGS_BLOOM":{"type":"string","description":"The bloom filter that allows for efficient querying of event logs.","example":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"L1_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"L1_BLOCK_NUMBER":{"type":"integer","description":"The block number on Layer 1 where the transaction was included.","example":1},"L1_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the base fee on Layer 1 for the transaction.","example":21000},"L1_BLOB_BASE_FEE":{"type":"string","description":"The base fee for processing blob transactions on Layer 1.","example":21000},"L1_BLOB_BASE_FEE_SCALAR":{"type":"string","description":"A scalar value used to adjust the blob base fee on Layer 1.","example":21000},"L1_FEE":{"type":"string","description":"The total fee paid for processing the transaction on Layer 1.","example":21000},"L1_GAS_PRICE":{"type":"string","description":"The price per unit of gas for executing the transaction on Layer 1.","example":21000},"DEPOSIT_NONCE":{"type":"integer","description":"A unique number associated with the deposit transaction to ensure the uniquness and order of deposit transactions.","example":12700001},"DEPOSIT_RECEIPT_VERSION":{"type":"integer","description":"The version number of the deposit receipt, indicating the format version used.","example":1},"GAS_PRICE":{"type":"string","description":"The price the sender is willing to pay for each unit of gas. Together with the gas limit, it determines the total fee for the transaction.","example":50000000000000},"INPUT":{"type":"string","description":"The data associated with the transaction, often used in smart contract interactions. It can contain parameters and instructions for contract execution.","example":"0x"},"RECEIPT_BLOB_GAS_PRICE":{"type":"string","description":"The total gas price of the transaction blobs.","example":21000},"RECEIPT_BLOB_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction blobs.","example":21000},"RECEIPT_CUMULATIVE_GAS_USED":{"type":"string","description":"The total amount of gas used by the transaction and all preceding transactions within the same block.","example":21000},"RECEIPT_GAS_USED":{"type":"string","description":"The amount of gas used specifically by the current transaction.","example":21000},"RECEIPT_CONTRACT_ADDRESS":{"type":"string","description":"This is the address created when a contract is deployed. The *TO* field should be null in this case.","example":null},"RECEIPT_ROOT":{"type":"string","description":"Only transactions included in blocks before the Byzantium Hard Fork have this field, as it was replaced by the *STATUS* field.","example":null},"RECEIPT_STATUS":{"type":"integer","description":"The status of a transaction is \"1\" if successful or \"0\" if it was a failure or reverted. Only transactions included in blocks post-Byzantium Hard Fork have this field.","example":1},"RECEIPT_TIMEBOOSTED":{"type":"boolean","description":"","example":true},"MAX_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for a transaction to be included promptly in a block.","example":null},"MAX_PRIORITY_FEE_PER_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"MAX_FEE_PER_BLOB_GAS":{"type":"string","description":"The maximum fee per gas unit that the sender is willing to pay for higher priority processing of the transaction.","example":null},"RECEIPT_EFFECTIVE_GAS_PRICE":{"type":"string","description":"The total base charge plus tip paid for each unit of gas.","example":50000000000000},"ACCESS_LIST":{"type":"array","description":"This causes a transaction to warm (i.e. pre-cache) another addresses state and the specified storage keys, Available on EIP-2930 transactions.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"AUTHORIZATION_LIST":{"type":"array","description":"","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1029"},"ADDRESS":{"type":"string","description":"Internal mapped Block Transaction Access address state","example":"0xf"},"STORAGE_KEYS":{"type":"array","description":"An array of storage keys associated with the address mentioned above. Storage keys are unique identifiers used to access data within a smart contract's storage on the blockchain. Smart contracts often store data in a key-value format, where the storage keys are used to retrieve specific values. ","example":["0xf"],"items":{"type":"string"}}}}},"ECDSA_V":{"type":"integer","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. This value helps to recover which public key was used to sign the transaction. Calculated as (CHAIN_ID * 2 + 35) or (CHAIN_ID * 2 + 36).","example":28},"ECDSA_R":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x88ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0"},"ECDSA_S":{"type":"string","description":"This is part of ECDSA (Elliptic Curve Digital Signature Algorithm) signature. It is derived from the private key and the data to be signed.","example":"0x45e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a"},"Y_PARITY":{"type":"string","description":"This is a recent addition from July 2023 and could be used instead of the ECDSA_V. ECDSA_V would be used for backward compatibility.","example":"0x0"},"TRACES":{"type":"array","description":"The detailed records of the steps and interactions that occured during the execution of this transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}}},"LOGS":{"type":"array","description":"The chronological records of all activities such as transaction executions, contract interactions, errors, and changes that occur within a blockchain network.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1024"},"ADDRESS":{"type":"string","description":"The address of the contract or account that generated the log entry. It serves as an identifier for the source of the event or action that triggered the log.","example":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"},"INDEX":{"type":"integer","description":"The position of the log entry within the sequence of logs generated by a transaction. It's usually an incremental integer starting from 0 for the first log in a transaction. This field helps in distinguishing and organizing logs generated during a transaction.","example":0},"DATA":{"type":"string","description":"This contains the arbitrary data associated with the log entry. This data can vary depending on the specific smart contract and event that generated the log. It might include relevant information about the state change or action represented by the log.","example":"0x0000000000000000000000000000000000000000000000013125faba00000000"},"TOPICS":{"type":"array","description":"An array of one or more indexed event topics. These topics are hash values of event signatures or indexed arguments. They provide a way to filter and search for specific types of events within the logs efficiently.","example":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000007054b0f980a7eb5b3a6b3446f3c947d80162775c","0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80"],"items":{"type":"string"}},"REMOVED":{"type":"boolean","description":"A a boolean indicator that signals whether the log entry has been removed or undone due to a chain reorganization or a consensus rule change. It helps applications differentiate between active and reverted logs. It is \"true\" if log was removed, otherwise false.","example":false}}}},"BLOBS":{"type":"array","description":"The current transaction blobs, null when there are no blobs attached to the transaction.","example":[],"items":{"type":"string"}},"HEX":{"type":"string","description":"The raw hexadecimal representation of the entire transaction data.","example":"0x"},"TRANSACTION_INPUTS":{"type":"array","description":"The source of funds for a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1047"},"TX_ID":{"type":"string","description":"Transaction ID, a unique identifier for the transaction, calculated as the double SHA-256 hash of the transaction data.","example":"96772166abc6c3348e2ebf7c5a0f0297a99c19f8eb7479635f93caccfc4e0374"},"BLOCK_HASH":{"type":"string","description":"The current block hash","example":"0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_BLOCK":{"type":"integer","description":"Transaction index in the block","example":0},"INDEX_IN_TRANSACTION":{"type":"integer","description":"The position of a specific input or output within a transaction.","example":20},"SEQUENCE":{"type":"integer","description":"A number used to specify the order of transaction.","example":4294967295},"COINBASE":{"type":"string","description":"A special type of transaction input that is used to reward miners with newly created bitcoins.","example":""},"TX_IN_WITNESS":{"type":"string","description":"","example":["924b2624416402a52ed7cf4eba6b2c535d2def8e649a74ed97aaca5ec54881ef3b34da68bb13d76d6b420e60297a9247cb081d1e59cb2c260b1509cff25d4b31","204c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612eac0063036f7264010b2047f22ed15d3082f5e9a005864528e4f991ade841a9c5846e2c118425878b6be1010d09b530368c74df10a30368","c04c04e894d5357840e324b24c959ca6a5082035f6ffae12f331202bc84bf4612e"]},"SCRIPT_SIG":{"type":"object","description":"","example":{"ASM":"","HEX":""}},"SOURCE_TRANSACTION_OUTPUT":{"type":"object","description":"","example":{"TYPE":"1048","BLOCK_NUMBER":840017,"BLOCK_TIMESTAMP":1713580375,"VALUE":0.015,"INDEX_IN_TRANSACTION":0,"SCRIPT_PUB_KEY":{"ASM":"OP_HASH160 3d26f38127c38d328f850efcb9aa72cf308c3a73 OP_EQUAL","DESC":"addr(37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH)#q35hmxvj","HEX":"a9143d26f38127c38d328f850efcb9aa72cf308c3a7387","ADDRESS":"37GMoczzB6tVZEN4nGJEk4okDUXs7EM5rH","TYPE":"scripthash"}},"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}}}},"TRANSACTION_OUTPUTS":{"type":"array","description":"The destination of funds in a Bitcoin transaction.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1048"},"BLOCK_NUMBER":{"type":"integer","description":"The current block number","example":46147},"BLOCK_TIMESTAMP":{"type":"number","description":"The current block timestamp","example":1438918233,"format":"unix_timestamp"},"INDEX_IN_TRANSACTION":{"type":"integer","description":"","example":8},"VALUE":{"type":"integer","description":"","example":0.01908834},"SCRIPT_PUB_KEY":{"type":"object","description":"","example":{"ASM":"OP_DUP OP_HASH160 e84d7bce1c9ac9905d7f375d5996354732396901 OP_EQUALVERIFY OP_CHECKSIG","DESC":"addr(1NBJbAK15oRW7x1sGvVEGLLunDub82YctX)#t07wcz5u","HEX":"76a914e84d7bce1c9ac9905d7f375d599635473239690188ac","ADDRESS":"1NBJbAK15oRW7x1sGvVEGLLunDub82YctX","TYPE":"pubkeyhash"}}}}},"SOURCE_HASH":{"type":"string","description":"Transaction source hash.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MINT":{"type":"integer","description":"","example":0},"REQUEST_ID":{"type":"string","description":"","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"REFUND_TO":{"type":"string","description":"The address to which any potential refunds from failed transactions or excess fees will be sent.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"L1_BASE_FEE":{"type":"integer","description":"The base fee required for transactions on Layer 1.","example":0},"DEPOSIT_VALUE":{"type":"integer","description":"The amount of cryptocurrency being deposited into the Layer 2 network.","example":0},"RETRY_TO":{"type":"string","description":"The address to which a transaction should be retried or redirected.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"RETRY_VALUE":{"type":"integer","description":"The amount of value associated with a transaction retry.","example":0},"RETRY_DATA":{"type":"string","description":"Additional data or parameters required for retrying a transaction.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"BENEFICIARY":{"type":"string","description":"The recipient address designated to receive the cryptocurrency.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_SUBMISSION_FEE":{"type":"integer","description":"The maximum fee a user is willing to pay for submitting a transaction.","example":0},"TICKET_ID":{"type":"string","description":"An identifier for a transaction ticket, used to track and manage queued or pending transactions.","example":"0x3a384c001fc552caf3bedc004d9946d734d3c45518d74e5d95397c2b306862a3"},"MAX_REFUND":{"type":"integer","description":"The maximum amount of funds that can be refunded in a transaction.","example":0},"SUBMISSION_FEE_REFUND":{"type":"integer","description":"The portion of the submission fee that is refunded if a transaction is not processed as expected.","example":0}}},"example":[],"x-cc-api-group":"TRANSACTIONS"},"ORPHAN_TRACES":{"type":"array","description":"Traces that were part of blocks that were not included in the main blockchain due to a fork or reorganization.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1023"},"ID":{"type":"string","description":"This is a unique identifier generated by combining the root trace type + transaction hash + trace addresses if available","example":"call_0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060"},"TRACE_TYPE":{"type":"string","description":"The type of trace being recorded. It could be either \"call\", \"reward\", \"suicide\", \"create\", etc. depending on the type of action being traced","example":"call"},"ADDRESS":{"type":"array","description":"This represents the address associated with the trace. This could refer to the contract address, external user address, or any other relevant address in the context of the blockchain transaction","example":[],"items":{"type":"string"}},"ACTION_FROM":{"type":"string","description":"This specifies the sender's address initiating the action","example":"0xa1e4380a3b1f749673e270229993ee55f35663b4"},"ACTION_CALL_TYPE":{"type":"string","description":"The type of call made, such as \"call\", \"delegate call\", or \"static call\". This is relevant when one contract invokes another.","example":"call"},"ACTION_GAS":{"type":"string","description":"The gas cost of executing the action. Gas is a measure of computational effort required for executing transactions and contract calls on the blockchain network.","example":"0"},"ACTION_INIT":{"type":"string","description":"This is the bytecode that is executed to initialize the contract and determine its final code stored on the blockchain.","example":"0x"},"ACTION_INPUT":{"type":"string","description":"The input data for the action (encoded in hexadecimal). For contract calls, this data includes function signatures and parameters.","example":"0x"},"ACTION_TO":{"type":"string","description":"This specifies the recipient's address receiving the action, which could be a contract or an external address.","example":"0x5df9b87991262f6ba471f09758cde1c0fc1de734"},"ACTION_VALUE":{"type":"string","description":"The value or amount of cryptocurrency involved in the action. This is particularly important for actions like transactions where cryptocurrency is transferred.","example":"5000000000000000000"},"ACTION_AUTHOR":{"type":"string","description":"This specifies the sender's address that initiated or triggered a specific action within a transaction. It identifies the entity or account responsible for the action, such as a user or a smart contract.","example":"0xdd2f1e6e498202e86d8f5442af596580a4f03c2c"},"ACTION_REWARD_TYPE":{"type":"string","description":"The type of reward associated with the action, which might include mining rewards, staking rewards, or other types of incentives.","example":null},"ACTION_ADDRESS":{"type":"string","description":"This is the contract whose code and storage are being removed from the blockchain.","example":"0x"},"ACTION_REFUND_ADDRESS":{"type":"string","description":"This is usually an external account or another contract that the remaining Ether is sent to.","example":"0x"},"ACTION_BALANCE":{"type":"string","description":"This amount will be transferred to the ACTION_REFUND_ADDRESS. It’s typically represented in wei (the smallest unit of Ether).","example":"0"},"RESULT_BEFORE_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_AFTER_EVM_TRANSFERS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ADDRESS":{"type":"string","description":"The address where the new contract is deployed.","example":"0x"},"RESULT_CODE":{"type":"string","description":"This is the actual code that will be stored and executed on the blockchain, distinct from the init code that was used to generate it.","example":"0x"},"RESULT_GAS_USED":{"type":"string","description":"The amount of gas actually consumed by the action during execution. This can be compared with the initial gas estimate to measure efficiency.","example":"0"},"RESULT_OUTPUT":{"type":"string","description":"The output data produced by the action (encoded in hexadecimal), often used for reading the results of a contract call.","example":"0x"},"RESULT_CALLS":{"type":"array","description":"","example":[],"items":{"type":"string"}},"RESULT_ERROR":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *execution reverted*.","example":"execution reverted"},"RESULT_STATUS":{"type":"string","description":"The status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"},"RESULT_REVERT_REASON":{"type":"string","description":"Records any errors encountered during the execution of the result, providing information about the nature of the error. Example: *fail*.","example":"fail"},"SUBTRACES":{"type":"integer","description":"Indicates the number of subtraces created as a result of the action. Subtraces are typically generated when a complex transaction or contract call triggers multiple internal calls.","example":null},"ERROR":{"type":"string","description":"Records any errors encountered during the execution of the action, providing information about the nature of the error. Example: *Reverted* or *invalid opcode*.","example":null},"STATUS":{"type":"string","description":"The overall status of the trace. Common values include \"1\" which means success and \"0\" which means failure, indicating whether the action was executed without errors.","example":"1"}}},"example":[],"x-cc-api-group":"ORPHAN_TRACES"},"UNCLES":{"type":"array","description":"The current block uncles","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1027"}}},"example":[],"x-cc-api-group":"UNCLES"},"WITHDRAWALS":{"type":"array","description":"The current block withdrawals","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1028"},"INDEX":{"type":"integer","description":"The unique identifier or index associated with a blockchain withdrawal transaction. It helps in keeping track of individual withdrawals and organizing them in a sequential or ordered manner.","example":1},"VALIDATOR_INDEX":{"type":"integer","description":"The identifier of the validator or node that approved or validated the withdrawal transaction. In proof-of-stake or similar consensus mechanisms, validators play a crucial role in ensuring the legitimacy of transactions, and this field ties a withdrawal to a specific validator.","example":145205},"ADDRESS":{"type":"string","description":"The destination address to which the withdrawn cryptocurrency is being sent. This address is usually a cryptographic public key or a combination of alphanumeric characters that uniquely identifies the recipient's wallet or account on the blockchain.","example":"0xf7c6c5d35cc24beeed0c93ff2acb6f7f3e2b89aa"},"AMOUNT":{"type":"integer","description":"The quantity of cryptocurrency being withdrawn in the transaction. It specifies the numerical value of the cryptocurrency units being transferred from the withdrawal source to the recipient's address.","example":13106144},"UNIT":{"type":"string","description":"The type of cryptocurrency being withdrawn. It could be a symbol or code that represents the specific cryptocurrency asset being transferred, such as \"BTC\" for Bitcoin or \"GWEI\" for Ethereum.","example":"GWEI"}}},"example":[],"x-cc-api-group":"WITHDRAWALS"}}},"ARB_FULL_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ARB_FULL_BLOCK"},"Err":{"type":"object","properties":{}}}},"ARB_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the field is associated to.","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"PROVIDER_KEY":{"type":"string","description":"Internal mapped Blockchain provider key for a specific asset","example":"cc_nethermind"},"CHAIN_ID":{"type":"integer","description":"This is the Id of the blockchain","example":1},"IS_PART_OF_REORG":{"type":"boolean","description":"Is this block part of a reorg, this would happen when we get block reorgs due to a longer chain being published by some of the miners.","example":false},"NUMBER":{"type":"integer","description":"The current block number","example":2},"TIMESTAMP":{"type":"integer","description":"The current block timestamp","format":"unix_timestamp","example":1230940800},"RECEIVED_TIMESTAMP":{"type":"integer","description":"The current block received timestamp","format":"unix_timestamp","example":1672531200},"RECEIVED_TIMESTAMP_NS":{"type":"integer","description":"The nanosecond part of the RECEIVED_TIMESTAMP field.","format":"unix_timestamp","example":0},"METADATA":{"type":"object","description":"The current block full metadata includes block data, transactions, logs.","properties":{},"example":{}},"TRANSACTION_RECEIPTS":{"type":"array","description":"The current block transaction receipts","items":{"type":"string"},"example":[]},"TRANSACTIONS":{"type":"array","description":"The current block transactions","items":{"type":"string"},"example":[]},"TRACES":{"type":"array","description":"The current block traces","items":{"type":"string"},"example":[]}}},"ARB_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ARB_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"SOL_FULL_RAW_BLOCK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1020"}}},"SOL_FULL_RAW_BLOCK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/SOL_FULL_RAW_BLOCK"},"Err":{"type":"object","properties":{}}}},"ETH_ADDRESS_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"1927","x-cc-api-group":"ID"},"ADDRESS":{"type":"string","description":"The unique hexadecimal address identifying a contract, entity or wallet on the blockchain.","example":"0xaec71b3be50bc4cd99b44ea84fcf1ecc913bc33d","x-cc-api-group":"ID"},"FIRST_INTERACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number where the address was first seen. It represents the specific block in the blockchain where the first transaction involving this address was recorded.","example":4643072,"x-cc-api-group":"FIRST_INTERACTION"},"FIRST_INTERACTION_BLOCK_HASH":{"type":"string","description":"The block hash where the address was first seen. It represents the specific block in the blockchain where the first transaction involving this address was recorded.","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"FIRST_INTERACTION"},"FIRST_INTERACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the block where the address was first seen. This UNIX timestamp indicates the date and time when the first transaction involving this address was recorded in the blockchain.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"FIRST_INTERACTION"},"FIRST_INTERACTION_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the first transaction where the address was involved. This unique identifier can be used to retrieve details about this initial transaction.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"FIRST_INTERACTION"},"FIRST_INTERACTION_ADDRESS":{"type":"string","description":"This field identifies the address with which the subject address had its first recorded interaction on the blockchain. An interaction is defined as any transaction where the subject address and this address are either the sender or receiver. For a contract address, this could also represent the address involved in the contract's creation or initial transaction.","example":"0x4f26ffbe5f04ed43630fdc30a87638d53d0b0876","x-cc-api-group":"FIRST_INTERACTION"},"LAST_INTERACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number of the most recent block where the address was seen. This indicates the latest block in which a transaction involving the address was recorded.","example":4643072,"x-cc-api-group":"LAST_INTERACTION"},"LAST_INTERACTION_BLOCK_HASH":{"type":"string","description":"The block hash of the most recent block where the address was seen. This indicates the latest block in which a transaction involving the address was recorded","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"LAST_INTERACTION"},"LAST_INTERACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the most recent block where the address was seen. This UNIX timestamp provides the date and time of the last transaction involving the address.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"LAST_INTERACTION"},"LAST_INTERACTION_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the most recent transaction involving the address. This identifier allows for the retrieval and examination of the latest transaction details.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"LAST_INTERACTION"},"LAST_INTERACTION_ADDRESS":{"type":"string","description":"This field denotes the address with which the subject address had its most recent interaction on the blockchain. Similar to the first interaction, this involves any transaction where the subject address and this address are part of the sender or receiver endpoints. In the context of smart contracts, it could represent the latest address to interact with the contract.","example":"0x4f26ffbe5f04ed43630fdc30a87638d53d0b0876","x-cc-api-group":"LAST_INTERACTION"},"FIRST_SENT_TRANSACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number where the address first initiated a transaction. It represents the specific block in the blockchain where the first transaction initiated by this address was recorded.","example":4643072,"x-cc-api-group":"FIRST_TRANSACTION"},"FIRST_SENT_TRANSACTION_BLOCK_HASH":{"type":"string","description":"The block hash where the address first initiated a transaction. It represents the specific block in the blockchain where the first transaction initiated by this address was recorded.","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"FIRST_INTERACTION"},"FIRST_SENT_TRANSACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the block where the address first initiated a transaction. This UNIX timestamp indicates the date and time when the first transaction initiated by this address was recorded in the blockchain.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"FIRST_TRANSACTION"},"FIRST_SENT_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the first transaction the address initiated. This unique identifier can be used to retrieve details about this initial transaction.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"FIRST_TRANSACTION"},"LAST_SENT_TRANSACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number of the most recent block where the address initiated a transaction. This indicates the latest block in which this address initiated a transaction.","example":4643072,"x-cc-api-group":"LAST_TRANSACTION"},"LAST_SENT_TRANSACTION_BLOCK_HASH":{"type":"string","description":"The block hash of the most recent block where the address initiated a transaction. This indicates the latest block in which this address initiated a transaction","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"LAST_INTERACTION"},"LAST_SENT_TRANSACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the most recent block where the address initiated a transaction. This UNIX timestamp provides the date and time of the last transaction initiated by the address.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"LAST_TRANSACTION"},"LAST_SENT_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the most recent transaction initiated by the address. This identifier allows for the retrieval and examination of the latest transaction details.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"LAST_TRANSACTION"},"FIRST_RECEIVED_TRANSACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number where the address first received a transaction. It represents the specific block in the blockchain where the first transaction received by this address was recorded.","example":4643072,"x-cc-api-group":"FIRST_TRANSACTION"},"FIRST_RECEIVED_TRANSACTION_BLOCK_HASH":{"type":"string","description":"The block hash where the address first received a transaction. It represents the specific block in the blockchain where the first transaction received by this address was recorded.","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"FIRST_INTERACTION"},"FIRST_RECEIVED_TRANSACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the block where the address first received a transaction. This UNIX timestamp indicates the date and time when the first transaction received by this address was recorded in the blockchain.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"FIRST_TRANSACTION"},"FIRST_RECEIVED_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the first transaction where the address was involved as a recipient. This unique identifier can be used to retrieve details about this initial transaction.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"FIRST_TRANSACTION"},"LAST_RECEIVED_TRANSACTION_BLOCK_NUMBER":{"type":"integer","description":"The block number of the most recent block where the address was the recipient of a transaction. This indicates the latest block in which a transaction received by the address was recorded.","example":4643072,"x-cc-api-group":"LAST_TRANSACTION"},"LAST_RECEIVED_TRANSACTION_BLOCK_HASH":{"type":"string","description":"The block hash of the most recent block where the address was the recipient of a transaction. This indicates the latest block in which a transaction received by the address was recorded","example":"0x0fa17b63961e26bbf25534a9cddcfdd8736841876e2ceddb96e14effb87f5711","x-cc-api-group":"LAST_INTERACTION"},"LAST_RECEIVED_TRANSACTION_BLOCK_TIMESTAMP":{"type":"integer","description":"The timestamp of the most recent block where the address was the recipient of a transaction. This UNIX timestamp provides the date and time of the last transaction received by the address.","format":"unix_timestamp","example":1511947794,"x-cc-api-group":"LAST_TRANSACTION"},"LAST_RECEIVED_TRANSACTION_HASH":{"type":"string","description":"The transaction hash of the most recent transaction where the address was involved as a recipient. This identifier allows for the retrieval and examination of the latest transaction details.","example":"0xae24ae1bc05e769074fa09504a41a4caec57bc83442245e5a9e689d7fd046ec1","x-cc-api-group":"LAST_TRANSACTION"},"TOTAL_SENT_TRANSACTIONS":{"type":"integer","description":"The total number of transactions initiated by this address. It quantifies all outgoing transactions where this address was the sender, indicating its activity level on the blockchain.","example":10000,"x-cc-api-group":"TOTALS"},"TOTAL_RECEIVED_TRANSACTIONS":{"type":"integer","description":"The total number of transactions where this address was the recipient. This field counts all incoming transactions to the address, reflecting its receptivity on the blockchain.","example":10000,"x-cc-api-group":"TOTALS"},"TOTAL_INTERACTIONS":{"type":"integer","description":"An interaction is defined as any transaction where the address was either the sender or the receiver. For addresses associated with smart contracts, this count also includes interactions triggered by contract executions. The total interactions metric provides insight into the activity level of the address within the blockchain network.","example":10000,"x-cc-api-group":"TOTALS"},"ADDRESS_TYPE":{"type":"string","description":"Specifies the type of blockchain address, providing context on its purpose and usage within the network. Allowed values: CONTRACT, WALLET","example":"CONTRACT","x-cc-api-group":"ID"},"FULLY_COMPATIBLE_TOKEN_STANDARDS":{"type":"array","description":"A JSON array detailing the token standards that are fully compatible with the smart contract at this address. This metadata helps to identify which token standards the contract supports without requiring modifications or special handling, ensuring interoperability within the blockchain ecosystem. Compatibility is key for seamless interaction with wallets, exchanges, and other contracts.","items":{"type":"string"},"example":"1927","x-cc-api-group":"CONTRACT_DATA"},"ADDRESS_NAME":{"type":"string","description":"The common name or designation the deployer of the contract or entity wanted to asssociate with a specific blockchain address, providing context or identity to the address's role or the asset it represents.","example":"Wrapped Ether","x-cc-api-group":"CONTRACT_DATA"},"ADDRESS_SYMBOL":{"type":"string","description":"The abbreviated symbol or short identifier that the deployer of the contract or entity wanted to asssociate with a specific blockchain address.","example":"WETH","x-cc-api-group":"CONTRACT_DATA"},"DECIMALS":{"type":"integer","description":"The number of decimal places to which the token can be divided, defining its smallest unit.","example":18,"x-cc-api-group":"CONTRACT_DATA"},"SUPPLY_BURNT":{"type":"integer","description":"The number of asset parts (coins/tokens) that have been sent to addresses/locations that are no longer accessible. They are permanently removed from the circulating supply on purpose, this does not include lost tokens sent to wallets that do not exist or sent to wallets that users no longer have access to, the address of burnt tokens is determined by the project team.","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_CIRCULATING":{"type":"integer","description":"Also referred to as free float or public float. The number of asset parts (coins/tokens) that are available to be traded and it excludes burnt supply and locked supply.","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_FUTURE":{"type":"integer","description":"The number of asset parts (coins/tokens) that are planned to be issued in the future. (supply_max - supply_issued)","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_ISSUED":{"type":"integer","description":"The number of asset parts (coins/tokens) that have been issued so far. (supply_circulating + supply_locked + supply_burnt)","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_LOCKED":{"type":"integer","description":"The number of asset parts (coins/tokens) that are currently not transferable until certain conditions are met. Locked supply is generally held by team members, DAOs, foundations, bridges, stakers, liquidity pools, etc.","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_MAX":{"type":"integer","description":"The maximum number of asset parts (coins/tokens) that will ever be issued (supply_circulating + supply_burnt + supply_locked + all supply that has not been issued yet but is planned to be issued in the future). For assets (coins/tokens) that have infinite supply, we use -1.","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_STAKED":{"type":"integer","description":"The current number of asset parts (coins/tokens) that are locked as part of PoS and PoS partial chains.","example":0,"x-cc-api-group":"SUPPLY_DATA"},"SUPPLY_TOTAL":{"type":"integer","description":"The number of asset parts (coins/tokens) that have been issued so far excluding burnt tokens. (supply_circulating + supply_locked)","example":0,"x-cc-api-group":"SUPPLY_DATA"},"BALANCE":{"type":"integer","description":"The current balance of an asset in a wallet","example":0,"x-cc-api-group":"SUPPLY_DATA"}}},"ETH_ADDRESS_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ETH_ADDRESS_METADATA"},"Err":{"type":"object","properties":{}}}},"ASSET_SUMMARY_LIST_BY_CHAIN":{"type":"object","x-visible-in-ai":false,"properties":{"CHAIN_ASSET_SUMMARY":{"type":"object","description":"Provides a comprehensive summary of the specific chain asset requested by the user. This object includes key details such as the asset's type, unique identifier, symbol, class/type, full name, logo URL, and the launch date of the asset. It is designed to give a snapshot of essential information about a particular asset on its respective blockchain, facilitating quick reference and analysis in applications that deal with asset tracking and portfolio management on blockchain networks.","properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"}}},"ASSETS_SUPPORTED":{"type":"array","description":"Lists the assets supported within the specific blockchain or platform context requested by the user. This array consists of objects, each representing an asset with detailed information including type, identifier, symbol, asset type, full name, and launch date. Additionally, it includes FILTERED_SUPPORTED_PLATFORMS, an array of objects detailing platforms that support the asset, specifically filtered to include only those relevant to the requested chain asset. Each entry under FILTERED_SUPPORTED_PLATFORMS provides granular details about the blockchain, token standards, bridge operators, and other operational particulars like smart contract addresses, token launch and retire dates, trading symbols, decimal precision, and inheritance relationships. This comprehensive data structure is crucial for understanding how assets are supported and interact across various platforms and blockchains, aiding developers in crafting tailored solutions for asset management, integration, and interoperability.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"},"FILTERED_SUPPORTED_PLATFORMS":{"type":"array","description":"This array contains detailed information on platforms specifically supporting the requested chain asset. Each object within the array outlines critical platform-related details such as the associated blockchain, token standard, bridge operator, and smart contract address. It also includes the asset's trading symbol, launch and retire dates, decimal precision, and indicates whether the asset is a main issuer or inherits properties from another asset. This filtered data is essential for users needing targeted insights into how an asset is supported and interacts on various blockchain platforms.","x-cc-api-group":"SUPPORTED_PLATFORMS","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"BLOCKCHAIN_ASSET_ID":{"type":"integer","description":"This is linked to the asset ID representing a specific chain."},"TOKEN_STANDARD":{"type":"string","description":"This is linked to the Blockchain field and it is one of the SUPPORTED_STANDARDS available on that platform."},"EXPLORER_URL":{"type":"string","description":"The URL for the token explorer website or tool."},"SMART_CONTRACT_ADDRESS":{"type":"string","description":"Unique identifier of the asset on the given blockchain (e.g., smart contract address for EVMs and chains that work with smart contracts, asset ID for Omni, symbol or symbol hex.issuer for XRP); format varies by chain."},"LAUNCH_DATE":{"type":"integer","description":"The data the smart contract on the supported platform was deployed or when the token was added."},"RETIRE_DATE":{"type":"integer","description":"The date the smart contract on the supported platform was retired or the token was deleted."},"TRADING_AS":{"type":"string","description":"The symbol/ticker this asset trades under on the specific blockchain platform."},"DECIMALS":{"type":"integer","description":"The number of decimal points on the specific blockchain platform for this token."},"IS_INHERITED":{"type":"boolean","description":"This is flagged to true if it comes from one of the assets that has this asset as a parent"}}}}}}}}},"ASSET_SUMMARY_LIST_BY_CHAIN_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ASSET_SUMMARY_LIST_BY_CHAIN"},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ASSET_METADATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"ID_LEGACY":{"type":"integer","description":"The legacy previous asset management system ID","example":7605,"x-cc-api-group":"ID"},"ID_PARENT_ASSET":{"type":"integer","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"ID_ASSET_ISSUER":{"type":"integer","description":"This field identifies the original creator of the token. It provides essential information about the entity, individual or contract rules responsible for issuing the token initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the token, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this asset","example":"","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when assets are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"integer","description":"Internal user id of the user who is in charge of updating and maintaining the asset","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the asset at the time of the asset assignment (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"integer","description":"Asset internal creation unix ts in our system","format":"unix_timestamp","example":1681990528,"x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the asset","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the asset at the time of the asset creation (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"integer","description":"Asset internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528,"x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the asset","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the asset at the time of the asset update (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this asset.","x-cc-api-group":"BASIC"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"ASSET_STATUS":{"type":"string","description":"The current operational status of the asset and its underlying project","x-cc-api-group":"CLASSIFICATION"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"INDEX_MARKET_NAME":{"type":"string","description":"The internal CoinDesk Indices API market name (index family) for this index.","x-cc-api-group":"ID"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"ISO_NUMERIC_CODE":{"type":"string","description":"The ISO Numeric Code is a unique three-digit numerical identifier assigned to each fiat currency by the International Organization for Standardization (ISO). It is a part of the ISO 4217 standard, which establishes a systematic framework for classifying currencies in international trade and finance. The ISO 4217 standard comprises three components: the alphabetic code, the numeric code, and the minor unit.","x-cc-api-group":"CLASSIFICATION"},"ASSET_SYMBOL_GLYPH":{"type":"string","description":"The Asset Symbol Glyph represents the visual or typographic mark associated with an asset, such as \"$\" for USD or \"₿\" for Bitcoin. It is distinct from the asset symbol (e.g., USD, BTC) and provides a recognizable representation used in financial contexts, UIs, and documentation.","x-cc-api-group":"CLASSIFICATION"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"},"ASSET_ISSUER_NAME":{"type":"string","description":"This field identifies the original creator of the asset. It provides essential information about the entity, individual or contract rules responsible for issuing the asset initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the asset, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"PARENT_ASSET_SYMBOL":{"type":"string","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"RESERVES_BREAKDOWN":{"type":"array","description":"A detailed breakdown of reserves backing a stablecoin asset, covering various categories such as cash, cryptocurrency, bonds, and other investments for transparency.","items":{"type":"object","properties":{"RESERVE_TYPE":{"type":"string","description":"The type of asset used for reserve collateralization, such as cash, crypto, or bonds."},"HOLDING_ADDRESSES":{"type":"array","description":"An array of objects containing the blockchain chain and the holding address (wallet or smart contract) for proof of reserves.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The blockchain on which the holding address (smart contract or wallet) is located."},"ADDRESS":{"type":"string","description":"The address holding the relevant asset or token, such as a smart contract or wallet. This can be used for proof of reserves."}}}},"PERCENTAGE":{"type":"number","description":"The percentage of the total reserves allocated to this particular reserve type."},"DESCRIPTION":{"type":"string","description":"A brief description for the reserves, clarifying the nature of the reserve type."},"COMMENTS":{"type":"string","description":"Any additional internal comments or information about the reserves."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"PREVIOUS_ASSET_SYMBOLS":{"type":"array","description":"A list of symbols that were previously associated with this asset.","items":{"type":"object","properties":{"SYMBOL":{"type":"string","description":"A symbol this asset was previously associated with."},"SYMBOL_USAGE_START_DATE":{"type":"integer","description":"Indicates the date this past symbol started being used."},"SYMBOL_USAGE_END_DATE":{"type":"integer","description":"Indicates the date this past symbol stopped being used."},"DESCRIPTION":{"type":"string","description":"A description for why this symbol existed or was changed."}}},"x-cc-api-group":"BASIC"},"HAS_SMART_CONTRACT_CAPABILITIES":{"type":"boolean","description":"Can you build smart contracts on top of this?","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SMART_CONTRACT_SUPPORT_TYPE":{"type":"string","description":"This field classifies digital assets based on their level of smart contract support, ranging from assets with no verifiable smart contract capabilities to those offering full autonomy. This categorization helps users and systems understand an asset's technical capacity for smart contract execution, crucial for assessing its utility and potential applications.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"IS_EXCLUDED_FROM_PRICE_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type price toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_VOLUME_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type volume toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_MKT_CAP_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type market capitalization toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"MKT_CAP_EXCLUSION_REASON":{"type":"string","description":"Specifies the reason why the asset is excluded from the market capitalization toplist, aiding in documentation and communication.","x-cc-api-group":"CLASSIFICATION"},"IS_USED_IN_DEFI":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in DeFi. Shows if is a blockchain-based form of finance that does not rely on central financial intermediaries. (DeFi Project).","x-cc-api-group":"INTERNAL"},"IS_USED_IN_NFT":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in NFTs. Is this used in any non-fungible token capacity. Based on this flag we show the nft list.","x-cc-api-group":"INTERNAL"},"WEBSITE_URL":{"type":"string","description":"The link for the official project website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"WHITE_PAPER_URL":{"type":"string","description":"A white paper, also written as \"whitepaper\", a document released by the project that gives investors technical information about its concept, its purpose, how it works, etc.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_METHODOLOGY":{"type":"string","description":"This field stores a URL linking to the Index Methodology document, which provides detailed information about the methodology used for constructing an index.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_FACTSHEET":{"type":"string","description":"This field stores a URL linking to the Index Factsheet document. The factsheet provides a concise overview of the index, including key metrics, methodology summary, and other relevant information for stakeholders.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_LINKED_PRODUCTS":{"type":"array","description":"A structured field representing a list of products linked to a specific index. This includes associated details such as names, symbols or URLs","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The primary name or title associated with the entity. This is a general string used to identify the entity uniquely or descriptively."},"SYMBOL":{"type":"string","description":"A shorthand or abbreviated representation of the entity's name, typically used for quick reference or symbolic purposes."},"URL":{"type":"string","description":"A web address or hyperlink associated with the entity. It links to additional resources, references, or detailed information."},"COMMENTS":{"type":"string","description":"A text field for additional notes or commentary about the entity. It supports longer text inputs and is accessible only to users with the \"asset_management_viewer\" role."}}},"x-cc-api-group":"RESOURCE_LINKS"},"PROSPECTUS":{"type":"string","description":"This field is designated for uploading the prospectus document of an Exchange-Traded Fund (ETF). The prospectus is a comprehensive report that details the investment's objectives, strategies, risks, and financials. It is essential for investor transparency and regulatory compliance. ","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the asset, they should all be .PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string"},"VERSION":{"type":"integer"},"URL":{"type":"string"},"COMMENT":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"PROJECT_LEADERS":{"type":"array","description":"An array of individuals that contains founders, whitepaper authors, investors, resechers, and other important people related to a project.","items":{"type":"object","properties":{"LEADER_TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"CONTACT"},"ASSET_CUSTODIANS":{"type":"array","description":"Custodians that support this asset.","items":{"type":"object","properties":{"NAME":{"type":"string"}}},"x-cc-api-group":"CUSTODIANS"},"ASSET_SECURITY_METRICS":{"type":"array","description":"","items":{"type":"object","properties":{"NAME":{"type":"string"},"OVERALL_SCORE":{"type":"number"},"OVERALL_RANK":{"type":"integer"},"UPDATED_AT":{"type":"number"}}},"x-cc-api-group":"SECURITY_METRICS"},"ASSET_INDUSTRIES":{"type":"array","description":"The asset industries that asset operates in.","items":{"type":"object","properties":{"ASSET_INDUSTRY":{"type":"string"},"JUSTIFICATION":{"type":"string","description":"A justification for putting an asset in this industry."}}},"x-cc-api-group":"CLASSIFICATION"},"ASSET_DYNAMIC_FAQS":{"type":"array","description":"AI-generated frequently asked questions about the asset, automatically updated based on market conditions and events.","items":{"type":"object","properties":{"TYPE_KEY":{"type":"string"},"NAME":{"type":"string","description":"The question or title for this FAQ entry, e.g. \"Why is the {asset symbol} price down today?\""},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp when this FAQ entry was last generated or updated by AI."},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The 24 hours percentage percentage change when the asset was news summary was created"},"TLDR":{"type":"string","description":"A brief summary with a paragraph and 3 bullet points in markdown format."},"TEXT":{"type":"string","description":"The detailed answer to the FAQ question in markdown format."},"SOURCES":{"type":"array","description":"List of sources used to generate this FAQ entry.","items":{"type":"object","properties":{"TITLE":{"type":"string","description":"The title of the article, post, or document"},"SOURCE_NAME":{"type":"string","description":"The name of the source (e.g., \"CoinDesk\", \"Twitter\", \"GitHub\")"},"URL":{"type":"string"},"PUBLISHED_ON":{"type":"number","description":"The timestamp when this the news article refernced was originally published."}}}},"LLM_MODEL_NAME":{"type":"string","description":"The LLM model that generated this FAQ entry (e.g., \"openai|gpt-4\", \"anthropic|3-sonnet\")"},"SCORE":{"type":"number","description":"AI confidence score - for price movement or positive - negative score for latest news summary:  1 - strongly positive news, 0 strongly negative news for this FAQ entry (0.0 - 1.0)"}}},"x-cc-api-group":"AI_INSIGHTS"},"ASSET_ALTERNATIVE_IDS":{"type":"array","description":"Alternative data platforms that also support this asset with their specific asset id.","items":{"type":"object","properties":{"NAME":{"type":"string"},"ID":{"type":"string"}}},"x-cc-api-group":"BASIC"},"ASSET_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this asset.","x-cc-api-group":"DESCRIPTION"},"ASSET_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this asset.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"ASSET_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this asset. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"CONSENSUS_MECHANISMS":{"type":"array","description":"The types of consensus mechanisms this network / blockchain / token uses. This is a list of the fault-tolerant mechanism families that are used to achieve the necessary agreement on a single data value or a single state of the network among distributed processes or multi-agent systems.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of consensus this blockhain / networks uses."}}},"x-cc-api-group":"CLASSIFICATION"},"CONSENSUS_ALGORITHM_TYPES":{"type":"array","description":"The types of consensus algorithms this blockchain uses. This is dependent on the consensus mechanisms used by the network / blockchain / token. For blockchains that are proof of work this would in most cases have the mining algorithm. For hybrid assets, this would be a list of mining and proof of stake and other algorithm used for reaching consensus.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the algorithm this blockchain uses for the consensus mechanism."},"DESCRIPTION":{"type":"string","description":"A description for the algorithm type."}}},"x-cc-api-group":"CLASSIFICATION"},"HASHING_ALGORITHM_TYPES":{"type":"array","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc."}}},"x-cc-api-group":"CLASSIFICATION"},"ASSET_DECIMAL_POINTS":{"type":"integer","description":"The total decimal places this asset can be divided into. E.g. 8 for BTC (1 Satoshi), 18 for ETH (1 Wei). Generally blockchains store all units as integers and this is the number you need to divide the lowest unit of accounting by to get the common unit of measure used for the asset.","x-cc-api-group":"BASIC"},"SUPPLY_MAX":{"type":"number","description":"The maximum number of asset parts (coins/tokens) that will ever be issued (supply_circulating + supply_burnt + supply_locked + all supply that has not been issued yet but is planned to be issued in the future). For assets (coins/tokens) that have infinite supply, we use -1.","example":20999999.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_ISSUED":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far. (supply_circulating + supply_locked + supply_burnt)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_TOTAL":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far excluding burnt tokens. (supply_circulating + supply_locked)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_CIRCULATING":{"type":"number","description":"Also referred to as free float or public float. The number of asset parts (coins/tokens) that are available to be traded and it excludes burnt supply and locked supply.","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_FUTURE":{"type":"number","description":"The number of asset parts (coins/tokens) that are planned to be issued in the future. (supply_max - supply_issued)","example":1572124.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_LOCKED":{"type":"number","description":"The number of asset parts (coins/tokens) that are currently not transferable until certain conditions are met. Locked supply is generally held by team members, DAOs, foundations, bridges, stakers, liquidity pools, etc.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_BURNT":{"type":"number","description":"The number of asset parts (coins/tokens) that have been sent to addresses/locations that are no longer accessible. They are permanently removed from the circulating supply on purpose, this does not include lost tokens sent to wallets that do not exist or sent to wallets that users no longer have access to, the address of burnt tokens is determined by the project team.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_STAKED":{"type":"number","description":"The current number of asset parts (coins/tokens) that are locked as part of PoS and PoS partial chains.","example":0,"x-cc-api-group":"SUPPLY"},"TARGET_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) expected to be used to incetivise new block issuance. On tokens / chains that have no underlying asset infation, this will eventually be 0.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"TARGET_BLOCK_TIME":{"type":"number","description":"Target time span in seconds to produce a new block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_NUMBER":{"type":"integer","description":"The latest block number issued by the network.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIMESTAMP":{"type":"integer","description":"The unix timestamp of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIME":{"type":"number","description":"Time spent in seconds to produce the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_SIZE":{"type":"number","description":"The size in bytes of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_ISSUER":{"type":"string","description":"The miner/validator of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) created in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_BURN":{"type":"number","description":"The total amount of asset parts (coins/tokens) that were taken out of circulation in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_TRANSACTION_FEE_TOTAL":{"type":"number","description":"The sum of all the transaction fees included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TRANSACTION_COUNT":{"type":"integer","description":"The total number of transactions included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_HASHES_PER_SECOND":{"type":"number","description":"The total rounds of hashing that are estimated to have been computed in order to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_DIFFICULTY":{"type":"number","description":"It is a measure of how difficult it was to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"MKT_CAP_PENALTY":{"type":"number","description":"The total penalty applied to the mkt cap due to liquidity or quality of data. Comment example: The value is reduced to 0.01% of the original due to low volume on B+ ranked exchanges or because it is only trading on a limited number of exchanges.","x-cc-api-group":"MKT_CAP"},"EXPLORER_ADDRESSES":{"type":"array","description":"The links for the all the blockexplorer websites that support this blockchain.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the block explorer."}}},"x-cc-api-group":"RESOURCE_LINKS"},"RPC_OPERATORS":{"type":"array","description":"Provides a list of endpoints necessary for accessing RPC data on a specified blockchain network if you prefer not to run your own node.","items":{"type":"object","properties":{"OPERATOR_NAME":{"type":"string","description":"The name of the entity responsible for maintaining and providing access to the RPC endpoint."},"URL":{"type":"string","description":"The web address of the RPC endpoint, where requests can be sent to interact with the blockchain."},"REQUIRES_API_KEY":{"type":"boolean","description":"The parameter name to be used for passing the API key in requests to the RPC endpoint."},"DOCUMENTATION_URL":{"type":"string","description":"The web address where the documentation for the RPC endpoint can be found. This documentation provides details on how to interact with the blockchain via the endpoint, including available methods, parameters, and examples."},"API_KEY_PARAMETER_NAME":{"type":"string","description":"Specifies the location (e.g., header, query parameter) where the API key should be included in the request."},"API_KEY_PARAMETER_LOCATION":{"type":"string","description":"Specifies the part of the HTTP request where the API key should be included. This can vary based on the endpoint requirements, such as including the key in the URL path, query parameters, POST parameters, or HTTP headers."}}},"x-cc-api-group":"RESOURCE_LINKS"},"BURN_ADDRESSES":{"type":"array","description":"The list of addresses that are considered burn addresses for this asset.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"SUPPLY_ADDRESSES"},"LOCKED_ADDRESSES":{"type":"array","description":"The list of addresses that are considered locked addresses for this asset.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"SUPPLY_ADDRESSES"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address to help people understand better what it is for."}}},"x-cc-api-group":"CONTROLLED_ADDRESSES"},"SUPPORTED_STANDARDS":{"type":"array","description":"The supported standards that tokens on this blockchain operate in. For blockchains that support smart contracts, supported standards are often included to tell people how to create, issue, deploy and interact with tokens based on the underlying blockchain.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the token standards supported/available on this blockchain."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SUPPORTED_PLATFORMS":{"type":"array","description":"When an asset (token, fiat, cryptocurrency, commodity) can be used on multiple blockchains, we refer to those blockchains as supported platforms. There are two types of assets that can be used on multiple blockchains: native tokens and bridged tokens. Native tokens are assets that are natively supported by a particular blockchain, while bridged tokens are assets that are \"bridged\" or \"pegged\" to another asset on a different blockchain.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"BLOCKCHAIN_ASSET_ID":{"type":"integer","description":"This is linked to the asset ID representing a specific chain."},"TOKEN_STANDARD":{"type":"string","description":"This is linked to the Blockchain field and it is one of the SUPPORTED_STANDARDS available on that platform."},"EXPLORER_URL":{"type":"string","description":"The URL for the token explorer website or tool."},"SMART_CONTRACT_ADDRESS":{"type":"string","description":"Unique identifier of the asset on the given blockchain (e.g., smart contract address for EVMs and chains that work with smart contracts, asset ID for Omni, symbol or symbol hex.issuer for XRP); format varies by chain."},"LAUNCH_DATE":{"type":"integer","description":"The data the smart contract on the supported platform was deployed or when the token was added."},"RETIRE_DATE":{"type":"integer","description":"The date the smart contract on the supported platform was retired or the token was deleted."},"TRADING_AS":{"type":"string","description":"The symbol/ticker this asset trades under on the specific blockchain platform."},"DECIMALS":{"type":"integer","description":"The number of decimal points on the specific blockchain platform for this token."},"IS_INHERITED":{"type":"boolean","description":"This is flagged to true if it comes from one of the assets that has this asset as a parent"}}},"x-cc-api-group":"SUPPORTED_PLATFORMS"},"LAYER_TWO_SOLUTIONS":{"type":"array","description":"Available layer two scaling solutions and their associated data for this blockchain.","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"CATEGORY":{"type":"string"},"PERMISSIONED_ADDRESSES":{"type":"array","description":"Special addresses of smart contracts, external user accounts or other accounts that have special rights to modify state on the smart contracts for this layer two solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address"},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ACCOUNT_TYPE":{"type":"string","description":"The type of the address"},"DESCRIPTION":{"type":"string","description":"A description for the account."}}}},"SMART_CONTRACTS_INVOLVED":{"type":"array","description":"Special addresses of smart contracts that are involved in the L2 scaling solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the smart contract"},"ADDRESS":{"type":"string","description":"The address of the smart contract"},"IS_UPGRADABLE":{"type":"boolean","description":"Tick this box if the smart contract is upgradable"},"DESCRIPTION":{"type":"string","description":"A description for the smart contract."}}}}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"PRIVACY_SOLUTIONS":{"type":"array","description":"Available privacy solutions.","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"PRIVACY_SOLUTION_FEATURES":{"type":"array","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of privacy solution feature"}}}},"PRIVACY_SOLUTION_TYPE":{"type":"string","description":"The Privacy Solution Type field indicates whether the privacy-enhancing features for transactions are integrated directly into the blockchain protocol or if they require the use of external tools or services."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SEO_TITLE":{"type":"string","description":"The title that appears when you post this page on social media.","x-cc-api-group":"SEO"},"SEO_DESCRIPTION":{"type":"string","description":"The description that appears when you post this page on social media.","x-cc-api-group":"SEO"},"OPEN_GRAPH_IMAGE_URL":{"type":"string","description":"The image that appears when you share the asset on social media, if not available we use the logo_url.","x-cc-api-group":"SEO"},"ASSET_DESCRIPTION_EXTENDED_SEO":{"type":"string","description":"The long form description in markdown for this asset that has been reviewed or hand crafted by a person with SEO expertise to have the higest impact in rankings.","x-cc-api-group":"SEO"},"CODE_REPOSITORIES":{"type":"array","description":"The open source code repositories where the code for this blockchain / token is.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository.","example":"https://github.com/user/repo"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"OPEN_ISSUES":{"type":"integer","description":"The number of open issues in the code repository. An open issue is a reported problem, suggestion, or task related to a repository that has not been resolved or closed yet, providing a platform for users to track and discuss the ongoing development and improvements of a project."},"CLOSED_ISSUES":{"type":"integer","description":"The number of closed issues in the code repository. A closed issue is a reported problem, suggestion, or task related to a repository that have been resolved or deemed no longer relevant, providing a record of past challenges and solutions within the project development."},"OPEN_PULL_REQUESTS":{"type":"integer","description":"The number of open pull requests in the code repository. An open pull request on GitHub is a proposed change to a repository's codebase that is open for review and discussion, offering contributors an opportunity to improve the project and maintainers to accept, reject, or request changes before integrating the proposed modifications."},"CLOSED_PULL_REQUESTS":{"type":"integer","description":"The number of closed pull requests in the code repository. A closed pull request is a proposed change to a repository's codebase that has been either accepted and merged into the codebase, rejected by the maintainers, or withdrawn by the submitter, providing a record of changes that were suggested and their outcomes in the project's development history."},"CONTRIBUTORS":{"type":"integer","description":"The number of contributors in the code repository. A contributor is a users who has contributed to a project by making changes or improvements to the project's codebase, having their changes accepted and merged, and is acknowledged for their contributions in the project's development history."},"FORKS":{"type":"integer","description":"The number of forks of this code repository. A fork in GitHub is a feature that allows users to create a personal copy of another repository, enabling them to modify, experiment with, or contribute to the project without affecting the original work."},"STARS":{"type":"integer","description":"The number of stars in the code repository. A star is when a GitHub user bookmarks or wants to show appreciation for a particular repository, much like a \"like\" or \"favorite\" function on other social media platforms."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the code repository. A subscriber is a user who has chosen to receive notifications for updates or changes made to a specific repository, allowing them to closely follow the development and discussions of a project."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp we last tried to get data for this code repository."},"CREATED_AT":{"type":"number","description":"The timestamp the code repository was created."},"UPDATED_AT":{"type":"number","description":"The timestamp of the last changes that occured in the code repository."},"LAST_PUSH_TS":{"type":"number","description":"The timestamp of the last commit to the code repository."},"CODE_SIZE_IN_BYTES":{"type":"integer","description":"The total size of this code repository in bytes."},"IS_FORK":{"type":"boolean","description":"Is this repository a fork of another code repository."},"LANGUAGE":{"type":"string","description":"The primary programming language of the code repository."},"FORKED_ASSET_DATA":{"type":"object","description":"The asset this repository is forked from","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset","example":1},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"BTC"},"CODE_REPOSITORY_URL":{"type":"string","description":"The URL of the asset's code repository.","example":"https://github.com/bitcoin/bitcoin"}}},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving code repository data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository endpoint that was called."},"TYPE":{"type":"string","description":"The type of the code repository endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the code repository endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the code repository endpoint."},"EXTERNAL_CACHE_KEY":{"type":"string","description":"The External Cache key (E-Tag) is a header that provides a mechanism for web caches and clients to validate cached resources, this is used for determining if a request has change since it's last call"}}}}}},"x-cc-api-group":"SOCIAL"},"SUBREDDITS":{"type":"array","description":"The link for subreddits plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit.","example":"https://www.reddit.com/r/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the subreddit."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of currently active users in the subreddit."},"AVERAGE_POSTS_PER_DAY":{"type":"number","description":"The computed daily average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average daily post count."},"AVERAGE_POSTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average hourly post count."},"AVERAGE_COMMENTS_PER_DAY":{"type":"number","description":"The computed daily average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average daily comment count."},"AVERAGE_COMMENTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average hourly comment count."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the subreddit."},"COMMUNITY_CREATED_AT":{"type":"number","description":"The timestamp when the subreddit community was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the subreddit."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving subreddit data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit endpoint that was called."},"TYPE":{"type":"string","description":"The type of subreddit endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the subreddit endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the subreddit endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"TWITTER_ACCOUNTS":{"type":"array","description":"The link for the official X (Formerly Twitter) account plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the X account.","example":"https://x.com/user"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the X account."},"USERNAME":{"type":"string","description":"The username of the X account."},"VERIFIED":{"type":"boolean","description":"The verification status of the X account."},"VERIFIED_TYPE":{"type":"string","description":"The verification type of the X account."},"FOLLOWING":{"type":"integer","description":"The number of accounts followed by this X account."},"FOLLOWERS":{"type":"integer","description":"The number of followers of this X account."},"FAVOURITES":{"type":"integer","description":"The total number of tweets favorited by this X account."},"LISTS":{"type":"integer","description":"The total number of lists this X account is a member of."},"STATUSES":{"type":"integer","description":"The total number of tweets and retweets made by this X account."},"ACCOUNT_CREATED_AT":{"type":"number","description":"The timestamp of when the X account was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the X account."}}},"x-cc-api-group":"SOCIAL"},"DISCORD_SERVERS":{"type":"array","description":"The link for Discord servers plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server.","example":"https://discord.com/invite/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Discord server."},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Discord server."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of online users in this Discord server."},"PREMIUM_SUBSCRIBERS":{"type":"integer","description":"The number of premium subscribers in this Discord server."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Discord server."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Discord server data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server endpoint that was called."},"TYPE":{"type":"string","description":"The type of Discord server endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Discord server endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Discord server endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"TELEGRAM_GROUPS":{"type":"array","description":"The link for the official Telegram pages plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group.","example":"https://t.me/s/channelName"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Telegram group."},"USERNAME":{"type":"string","description":"The username of the Telegram group."},"MEMBERS":{"type":"integer","description":"The total number of members in the Telegram group."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Telegram group."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Telegram group data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group for this endpoint call."},"TYPE":{"type":"string","description":"The type of endpoint used for retrieving Telegram group data."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Telegram group endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Telegram group endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"ASSOCIATED_CONTACT_DETAILS":{"type":"array","description":"Associated contact addresses for the team members, employees or affiliated contacts.","items":{"type":"object","properties":{"CONTACT_TYPE":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"CONTACT"},"OTHER_SOCIAL_NETWORKS":{"type":"array","description":"Any other asset related social networks.","items":{"type":"object","properties":{"NAME":{"type":"string"},"URL":{"type":"string","description":"The URL of the social network.","example":"https://example.com"}}},"x-cc-api-group":"SOCIAL"},"HELD_TOKEN_SALE":{"type":"boolean","description":"Use this flag to get access to all the token sale fields.","x-cc-api-group":"TOKEN_SALE"},"TOKEN_SALES":{"type":"array","description":"An array of token sales.","items":{"type":"object","properties":{"TOKEN_SALE_TYPE":{"type":"string","description":"The type of token sale."},"TOKEN_SALE_DATE_START":{"type":"integer","description":"The date and time the ICO will start at. Time is in GMT."},"TOKEN_SALE_DATE_END":{"type":"integer","description":"The date the token sale will end at. Time is in GMT."},"TOKEN_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the token sale."},"TOKEN_SALE_TEAM_MEMBERS":{"type":"array","description":"The team members that are working on the project","items":{"type":"object","properties":{"TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"TOKEN_SALE_WEBSITE_URL":{"type":"string","description":"The link of the ICO page."},"TOKEN_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available to investors for the token sale. This does not include the reserve. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_RESERVE_SUPPLY":{"type":"number","description":"Total number of tokens kept in reserve or allocated to team mebers. This does not include the tokens sold to investors. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_SUPPLY_ADDED":{"type":"number","description":"Total number of tokens added in this token sale. This is equal to TOKEN_SALE_SUPPLY + TOKEN_SALE_RESERVE_SUPPLY."},"TOKEN_SALE_PRE_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available before this this token sale. This is the sum of all the previous sales, on the first token sale this will be 0. TOKEN_SALE_POST_SALE_SUPPLY  = TOKEN_SALE_PRE_SALE_SUPPLY + TOKEN_SALE_SUPPLY_ADDED."},"TOKEN_SUPPLY_POST_SALE":{"type":"string","description":"The numbers of tokens post Sale. This should be all the locked tokens, the team tokens and all other tokens not included in the sale. It should be equal to TOKEN_SALE_RESERVE + TOKEN_SALE_SUPPLY."},"TOKEN_SALE_PAYMENT_METHOD_TYPE":{"type":"string","description":"The payment method for the token sale. The currencies that are accepted in this token sale."},"TOKEN_SALE_START_PRICE":{"type":"number","description":"The start price of the token sale."},"TOKEN_SALE_START_PRICE_CURRENCY":{"type":"string","description":"The currency of the start price."},"TOKEN_SALE_FUNDING_CAP":{"type":"number","description":"Hard cap refers to the maximum number of tokens that can be sold, is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_CAP_CURRENCY":{"type":"string","description":"This is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_TARGET":{"type":"number","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the token sale (tokens sold).","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this token sale."},"TOKEN_SALE_INVESTORS_SPLIT":{"type":"array","description":"The way the tokens that are sold are split","items":{"type":"object","properties":{"CATEGORY":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_RESERVE_SPLIT":{"type":"array","description":"The way the tokens that are not sold are split. The token sale TOKEN_SALE_RESERVE total should be the sum of all the TOKEN_SALE_RESERVE_SPLITs. Sum of TOKEN_SALE_RESERVE_SPLIT and TOKEN_SALE_SUPPLY  should be equal to TOKEN_SUPPLY_POST_SALE.","items":{"type":"object","properties":{"CATEGORY":{"type":"string","description":"The type of reserve split"},"TOTAL_TOKENS":{"type":"number","description":"Total tokens set aside"},"ADDRESS":{"type":"string","description":"The address where these tokens as kept"},"DESCRIPTION":{"type":"string","description":"A description for how they intend to use the funds."}}}},"TOKEN_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the token sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_LAUNCHPADS":{"type":"array","description":"Launchpads/Exchanges in which the offering has/is taking place","items":{"type":"object","properties":{"NAME":{"type":"string","description":"Launchpad/Exchange in which the offering is taking place"}}}},"TOKEN_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the token sales is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the token sales is based or has a subsidiary."}}}},"TOKEN_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"TOKEN_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the ICO on the structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the ICO on the structure."}}}},"TOKEN_SALE_LEGAL_FORMS":{"type":"array","description":"The type of company or subsidiaries.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of company or subsidiaries."}}}},"TOKEN_SALE_SECURITY_AUDIT_COMPANIES":{"type":"array","description":"The companies that did the security audit on the smart contract.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the companies that did the security audit on the smart contract."},"AUDIT_DOCUMENT":{"type":"string"}}}}}},"x-cc-api-group":"TOKEN_SALE"},"HELD_EQUITY_SALE":{"type":"boolean","description":"Use this flag to get access to all the equity sale fields.","x-cc-api-group":"EQUITY_SALE"},"EQUITY_SALES":{"type":"array","description":"An array of equity sales. An equity sale refers to shares in the company behind a token, a token sales refers to selling tokens that don't give you rights in the company","items":{"type":"object","properties":{"EQUITY_SALE_STAGE":{"type":"string","description":"The stage of equity sale."},"EQUITY_SALE_ENTITY_NAME":{"type":"string","description":"The leagl name of the company that the equity will be related to."},"EQUITY_SALE_ANNOUNCEMENT_DATE":{"type":"integer","description":"The date and time the equity sale was announced. Time is in UTC."},"EQUITY_SALE_CLOSE_DATE":{"type":"integer","description":"The date the equity sale will/has ended at. Time is in UTC."},"EQUITY_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the equity sale."},"EQUITY_SALE_TEAM_MEMBERS":{"type":"array","description":"The CxO members that are working at the company.","items":{"type":"object","properties":{"JOB_TITLE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"EQUITY_SALE_ENTITY_URL":{"type":"string","description":"The link of the equity sale page."},"EQUITY_SALE_SUPPLY":{"type":"number","description":"Total number of shares available for the equity sale."},"TOTAL_EQUITY_SUPPLY_POST_RAISE":{"type":"number","description":"Total number of shares the company has issued including the shares in this equity sale."},"EQUITY_SALE_FUNDING_TARGET":{"type":"number","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the equity sale.","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"TOTAL_EQUITY":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this equity sale."},"EQUITY_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the equity sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_EQUITY_RECEIVED":{"type":"number"},"INVESTMENT_VALUE":{"type":"number"},"INVESTMENT_CURRENCY":{"type":"string","description":"The currency for funds raised."},"IS_LEAD_INVESTOR":{"type":"boolean"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the equity sale is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the equity sales is based or has a subsidiary."}}}},"EQUITY_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"EQUITY_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the company on the equity sale structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the company on the equity sale structure."}}}}}},"x-cc-api-group":"EQUITY_SALE"},"ROOT_ASSET_ID":{"type":"integer","description":"Identifies the root asset in a chain of derived or related assets, essential for tracing asset lineage. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":2,"x-cc-api-group":"ID"},"ROOT_ASSET_SYMBOL":{"type":"string","description":"The symbol of the root asset, facilitating recognition and correlation within asset hierarchies. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":"ETH","x-cc-api-group":"ID"},"ROOT_ASSET_TYPE":{"type":"string","description":"Specifies the fundamental category of the root asset, crucial for understanding the base or origin of an asset's classification. Null if the asset does not have a parent. For example, the fiat USD would be the root asset for tokens CUSDC or USDCE, and in this case, the ROOT_ASSET_TYPE would be fiat.","example":"BLOCKCHAIN","x-cc-api-group":"ID"},"PRICE_USD":{"type":"number","description":"Denotes the current value / price of the asset in USD. This value is used to populate toplists and is calculated based on real-time market data.","x-cc-api-group":"PRICE"},"PRICE_USD_SOURCE":{"type":"string","description":"Denotes the source we used for the USD value / price.","x-cc-api-group":"PRICE"},"PRICE_USD_LAST_UPDATE_TS":{"type":"integer","description":"The Unix timestamp of the last update to the USD value / price of the asset.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_ASSET":{"type":"object","description":"Denotes the convesion asset ID, SYMBOL and ASSET_TYPE.","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"ASSET_TYPE":{"type":"string","description":"The type of the asset (FIAT, BLOCKCHAIN, TOKEN, etc.)","example":"BLOCKCHAIN"}},"x-cc-api-group":"PRICE"},"PRICE_CONVERSION_RATE":{"type":"number","description":"Denotes the current value / price of USD in the requested quote asset.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_VALUE":{"type":"number","description":"Denotes the current value / price of the asset in the requested quote currency.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_SOURCE":{"type":"string","description":"Denotes the source we used for the conversion asset value / price.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_LAST_UPDATE_TS":{"type":"integer","description":"The Unix timestamp of the last update to the conversion asset value / price.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"CIRCULATING_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This is used to rank assets in toplists based on their circulating market capitalization.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This figure gives an overview of the total value of all issued tokens for a given asset.","x-cc-api-group":"MKT_CAP"},"CIRCULATING_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the CIRCULATING_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the TOTAL_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 23 hours ago and now. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price. This is the same as the SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 6 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_7_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price. This is the same as the SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 29 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_30_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price. This is the same as the SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"TOPLIST_BASE_RANK":{"type":"object","description":"Indicates the asset’s position in our global asset ranking. There are multiple ranks, each is determined by at least one factor, such as asset launch date, market cap, trading volume, etc..","properties":{"CREATED_ON":{"type":"integer","description":"Rank based on CREATED_ON sorted ASC from earliest created to most recent one."},"LAUNCH_DATE":{"type":"integer","description":"Rank based on LAUNCH_DATE sorted ASC from earliest launched to most recently launched one."},"PRICE_USD":{"type":"integer","description":"Rank based on PRICE_USD sorted DESC from most expensive asset to cheapest one."},"CIRCULATING_MKT_CAP_USD":{"type":"integer","description":"Rank based on CIRCULATING_MKT_CAP_USD sorted DESC from highest circulating market cap to lowest."},"TOTAL_MKT_CAP_USD":{"type":"integer","description":"Rank based on TOTAL_MKT_CAP_USD sorted DESC from highest total market cap to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."}},"x-cc-api-group":"TOPLIST_RANK"},"TOTAL_ENDPOINTS_OK":{"type":"integer","description":"Total endpoints we have successfully called in the last 24 hours.","x-cc-api-group":"INTERNAL"},"TOTAL_ENDPOINTS_WITH_ISSUES":{"type":"integer","description":"Total endpoints that have not had a successfull call in the last 24 hours.","x-cc-api-group":"INTERNAL"}}},"ASSET_METADATA_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ASSET_METADATA"},"Err":{"type":"object","properties":{}}}},"ASSET_HISTORICAL_SUPPLY":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"150","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":"1","x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"The unique identifier for the asset","example":"BTC","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The unix timestamp when this asset historical supply day data was saved","example":1689120000,"x-cc-api-group":"ID"},"SUPPLY_CIRCULATING":{"type":"number","description":"Also referred to as free float or public float. The number of asset parts (coins/tokens) that are available to be traded and it excludes burnt supply and locked supply.","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_TOTAL":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far excluding burnt tokens. (supply_circulating + supply_locked)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_BURNT":{"type":"number","description":"The number of asset parts (coins/tokens) that have been sent to addresses/locations that are no longer accessible. They are permanently removed from the circulating supply on purpose, this does not include lost tokens sent to wallets that do not exist or sent to wallets that users no longer have access to, the address of burnt tokens is determined by the project team.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_MAX":{"type":"number","description":"The maximum number of asset parts (coins/tokens) that will ever be issued (supply_circulating + supply_burnt + supply_locked + all supply that has not been issued yet but is planned to be issued in the future). For assets (coins/tokens) that have infinite supply, we use -1.","example":20999999.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_STAKED":{"type":"number","description":"The current number of asset parts (coins/tokens) that are locked as part of PoS and PoS partial chains.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_FUTURE":{"type":"number","description":"The number of asset parts (coins/tokens) that are planned to be issued in the future. (supply_max - supply_issued)","example":1572124.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_ISSUED":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far. (supply_circulating + supply_locked + supply_burnt)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_LOCKED":{"type":"number","description":"The number of asset parts (coins/tokens) that are currently not transferable until certain conditions are met. Locked supply is generally held by team members, DAOs, foundations, bridges, stakers, liquidity pools, etc.","example":0,"x-cc-api-group":"SUPPLY"}}},"ASSET_HISTORICAL_SUPPLY_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_HISTORICAL_SUPPLY"}},"Err":{"type":"object","properties":{}}}},"ASSET_METADATA_OBJECT":{"type":"object","x-visible-in-ai":true,"properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"ID_LEGACY":{"type":"integer","description":"The legacy previous asset management system ID","example":7605,"x-cc-api-group":"ID"},"ID_PARENT_ASSET":{"type":"integer","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"ID_ASSET_ISSUER":{"type":"integer","description":"This field identifies the original creator of the token. It provides essential information about the entity, individual or contract rules responsible for issuing the token initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the token, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this asset","example":"","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when assets are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"integer","description":"Internal user id of the user who is in charge of updating and maintaining the asset","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the asset at the time of the asset assignment (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"integer","description":"Asset internal creation unix ts in our system","format":"unix_timestamp","example":1681990528,"x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the asset","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the asset at the time of the asset creation (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"integer","description":"Asset internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528,"x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the asset","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the asset at the time of the asset update (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this asset.","x-cc-api-group":"BASIC"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"ASSET_STATUS":{"type":"string","description":"The current operational status of the asset and its underlying project","x-cc-api-group":"CLASSIFICATION"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"INDEX_MARKET_NAME":{"type":"string","description":"The internal CoinDesk Indices API market name (index family) for this index.","x-cc-api-group":"ID"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"ISO_NUMERIC_CODE":{"type":"string","description":"The ISO Numeric Code is a unique three-digit numerical identifier assigned to each fiat currency by the International Organization for Standardization (ISO). It is a part of the ISO 4217 standard, which establishes a systematic framework for classifying currencies in international trade and finance. The ISO 4217 standard comprises three components: the alphabetic code, the numeric code, and the minor unit.","x-cc-api-group":"CLASSIFICATION"},"ASSET_SYMBOL_GLYPH":{"type":"string","description":"The Asset Symbol Glyph represents the visual or typographic mark associated with an asset, such as \"$\" for USD or \"₿\" for Bitcoin. It is distinct from the asset symbol (e.g., USD, BTC) and provides a recognizable representation used in financial contexts, UIs, and documentation.","x-cc-api-group":"CLASSIFICATION"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"},"ASSET_ISSUER_NAME":{"type":"string","description":"This field identifies the original creator of the asset. It provides essential information about the entity, individual or contract rules responsible for issuing the asset initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the asset, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"PARENT_ASSET_SYMBOL":{"type":"string","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"RESERVES_BREAKDOWN":{"type":"array","description":"A detailed breakdown of reserves backing a stablecoin asset, covering various categories such as cash, cryptocurrency, bonds, and other investments for transparency.","items":{"type":"object","properties":{"RESERVE_TYPE":{"type":"string","description":"The type of asset used for reserve collateralization, such as cash, crypto, or bonds."},"HOLDING_ADDRESSES":{"type":"array","description":"An array of objects containing the blockchain chain and the holding address (wallet or smart contract) for proof of reserves.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The blockchain on which the holding address (smart contract or wallet) is located."},"ADDRESS":{"type":"string","description":"The address holding the relevant asset or token, such as a smart contract or wallet. This can be used for proof of reserves."}}}},"PERCENTAGE":{"type":"number","description":"The percentage of the total reserves allocated to this particular reserve type."},"DESCRIPTION":{"type":"string","description":"A brief description for the reserves, clarifying the nature of the reserve type."},"COMMENTS":{"type":"string","description":"Any additional internal comments or information about the reserves."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"PREVIOUS_ASSET_SYMBOLS":{"type":"array","description":"A list of symbols that were previously associated with this asset.","items":{"type":"object","properties":{"SYMBOL":{"type":"string","description":"A symbol this asset was previously associated with."},"SYMBOL_USAGE_START_DATE":{"type":"integer","description":"Indicates the date this past symbol started being used."},"SYMBOL_USAGE_END_DATE":{"type":"integer","description":"Indicates the date this past symbol stopped being used."},"DESCRIPTION":{"type":"string","description":"A description for why this symbol existed or was changed."}}},"x-cc-api-group":"BASIC"},"HAS_SMART_CONTRACT_CAPABILITIES":{"type":"boolean","description":"Can you build smart contracts on top of this?","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SMART_CONTRACT_SUPPORT_TYPE":{"type":"string","description":"This field classifies digital assets based on their level of smart contract support, ranging from assets with no verifiable smart contract capabilities to those offering full autonomy. This categorization helps users and systems understand an asset's technical capacity for smart contract execution, crucial for assessing its utility and potential applications.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"IS_EXCLUDED_FROM_PRICE_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type price toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_VOLUME_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type volume toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_MKT_CAP_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type market capitalization toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"MKT_CAP_EXCLUSION_REASON":{"type":"string","description":"Specifies the reason why the asset is excluded from the market capitalization toplist, aiding in documentation and communication.","x-cc-api-group":"CLASSIFICATION"},"IS_USED_IN_DEFI":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in DeFi. Shows if is a blockchain-based form of finance that does not rely on central financial intermediaries. (DeFi Project).","x-cc-api-group":"INTERNAL"},"IS_USED_IN_NFT":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in NFTs. Is this used in any non-fungible token capacity. Based on this flag we show the nft list.","x-cc-api-group":"INTERNAL"},"WEBSITE_URL":{"type":"string","description":"The link for the official project website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"WHITE_PAPER_URL":{"type":"string","description":"A white paper, also written as \"whitepaper\", a document released by the project that gives investors technical information about its concept, its purpose, how it works, etc.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_METHODOLOGY":{"type":"string","description":"This field stores a URL linking to the Index Methodology document, which provides detailed information about the methodology used for constructing an index.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_FACTSHEET":{"type":"string","description":"This field stores a URL linking to the Index Factsheet document. The factsheet provides a concise overview of the index, including key metrics, methodology summary, and other relevant information for stakeholders.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_LINKED_PRODUCTS":{"type":"array","description":"A structured field representing a list of products linked to a specific index. This includes associated details such as names, symbols or URLs","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The primary name or title associated with the entity. This is a general string used to identify the entity uniquely or descriptively."},"SYMBOL":{"type":"string","description":"A shorthand or abbreviated representation of the entity's name, typically used for quick reference or symbolic purposes."},"URL":{"type":"string","description":"A web address or hyperlink associated with the entity. It links to additional resources, references, or detailed information."},"COMMENTS":{"type":"string","description":"A text field for additional notes or commentary about the entity. It supports longer text inputs and is accessible only to users with the \"asset_management_viewer\" role."}}},"x-cc-api-group":"RESOURCE_LINKS"},"PROSPECTUS":{"type":"string","description":"This field is designated for uploading the prospectus document of an Exchange-Traded Fund (ETF). The prospectus is a comprehensive report that details the investment's objectives, strategies, risks, and financials. It is essential for investor transparency and regulatory compliance. ","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the asset, they should all be .PDFs.","items":{"type":"object","properties":{"TYPE":{"type":"string"},"VERSION":{"type":"integer"},"URL":{"type":"string"},"COMMENT":{"type":"string"}}},"x-cc-api-group":"RESOURCE_LINKS"},"PROJECT_LEADERS":{"type":"array","description":"An array of individuals that contains founders, whitepaper authors, investors, resechers, and other important people related to a project.","items":{"type":"object","properties":{"LEADER_TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"CONTACT"},"ASSET_CUSTODIANS":{"type":"array","description":"Custodians that support this asset.","items":{"type":"object","properties":{"NAME":{"type":"string"}}},"x-cc-api-group":"CUSTODIANS"},"ASSET_SECURITY_METRICS":{"type":"array","description":"","items":{"type":"object","properties":{"NAME":{"type":"string"},"OVERALL_SCORE":{"type":"number"},"OVERALL_RANK":{"type":"integer"},"UPDATED_AT":{"type":"number"}}},"x-cc-api-group":"SECURITY_METRICS"},"ASSET_INDUSTRIES":{"type":"array","description":"The asset industries that asset operates in.","items":{"type":"object","properties":{"ASSET_INDUSTRY":{"type":"string"},"JUSTIFICATION":{"type":"string","description":"A justification for putting an asset in this industry."}}},"x-cc-api-group":"CLASSIFICATION"},"ASSET_DYNAMIC_FAQS":{"type":"array","description":"AI-generated frequently asked questions about the asset, automatically updated based on market conditions and events.","items":{"type":"object","properties":{"TYPE_KEY":{"type":"string"},"NAME":{"type":"string","description":"The question or title for this FAQ entry, e.g. \"Why is the {asset symbol} price down today?\""},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp when this FAQ entry was last generated or updated by AI."},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The 24 hours percentage percentage change when the asset was news summary was created"},"TLDR":{"type":"string","description":"A brief summary with a paragraph and 3 bullet points in markdown format."},"TEXT":{"type":"string","description":"The detailed answer to the FAQ question in markdown format."},"SOURCES":{"type":"array","description":"List of sources used to generate this FAQ entry.","items":{"type":"object","properties":{"TITLE":{"type":"string","description":"The title of the article, post, or document"},"SOURCE_NAME":{"type":"string","description":"The name of the source (e.g., \"CoinDesk\", \"Twitter\", \"GitHub\")"},"URL":{"type":"string"},"PUBLISHED_ON":{"type":"number","description":"The timestamp when this the news article refernced was originally published."}}}},"LLM_MODEL_NAME":{"type":"string","description":"The LLM model that generated this FAQ entry (e.g., \"openai|gpt-4\", \"anthropic|3-sonnet\")"},"SCORE":{"type":"number","description":"AI confidence score - for price movement or positive - negative score for latest news summary:  1 - strongly positive news, 0 strongly negative news for this FAQ entry (0.0 - 1.0)"}}},"x-cc-api-group":"AI_INSIGHTS"},"ASSET_ALTERNATIVE_IDS":{"type":"array","description":"Alternative data platforms that also support this asset with their specific asset id.","items":{"type":"object","properties":{"NAME":{"type":"string"},"ID":{"type":"string"}}},"x-cc-api-group":"BASIC"},"ASSET_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this asset.","x-cc-api-group":"DESCRIPTION"},"ASSET_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this asset.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"ASSET_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this asset. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"CONSENSUS_MECHANISMS":{"type":"array","description":"The types of consensus mechanisms this network / blockchain / token uses. This is a list of the fault-tolerant mechanism families that are used to achieve the necessary agreement on a single data value or a single state of the network among distributed processes or multi-agent systems.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of consensus this blockhain / networks uses."}}},"x-cc-api-group":"CLASSIFICATION"},"CONSENSUS_ALGORITHM_TYPES":{"type":"array","description":"The types of consensus algorithms this blockchain uses. This is dependent on the consensus mechanisms used by the network / blockchain / token. For blockchains that are proof of work this would in most cases have the mining algorithm. For hybrid assets, this would be a list of mining and proof of stake and other algorithm used for reaching consensus.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the algorithm this blockchain uses for the consensus mechanism."},"DESCRIPTION":{"type":"string","description":"A description for the algorithm type."}}},"x-cc-api-group":"CLASSIFICATION"},"HASHING_ALGORITHM_TYPES":{"type":"array","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc."}}},"x-cc-api-group":"CLASSIFICATION"},"ASSET_DECIMAL_POINTS":{"type":"integer","description":"The total decimal places this asset can be divided into. E.g. 8 for BTC (1 Satoshi), 18 for ETH (1 Wei). Generally blockchains store all units as integers and this is the number you need to divide the lowest unit of accounting by to get the common unit of measure used for the asset.","x-cc-api-group":"BASIC"},"SUPPLY_MAX":{"type":"number","description":"The maximum number of asset parts (coins/tokens) that will ever be issued (supply_circulating + supply_burnt + supply_locked + all supply that has not been issued yet but is planned to be issued in the future). For assets (coins/tokens) that have infinite supply, we use -1.","example":20999999.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_ISSUED":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far. (supply_circulating + supply_locked + supply_burnt)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_TOTAL":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far excluding burnt tokens. (supply_circulating + supply_locked)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_CIRCULATING":{"type":"number","description":"Also referred to as free float or public float. The number of asset parts (coins/tokens) that are available to be traded and it excludes burnt supply and locked supply.","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_FUTURE":{"type":"number","description":"The number of asset parts (coins/tokens) that are planned to be issued in the future. (supply_max - supply_issued)","example":1572124.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_LOCKED":{"type":"number","description":"The number of asset parts (coins/tokens) that are currently not transferable until certain conditions are met. Locked supply is generally held by team members, DAOs, foundations, bridges, stakers, liquidity pools, etc.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_BURNT":{"type":"number","description":"The number of asset parts (coins/tokens) that have been sent to addresses/locations that are no longer accessible. They are permanently removed from the circulating supply on purpose, this does not include lost tokens sent to wallets that do not exist or sent to wallets that users no longer have access to, the address of burnt tokens is determined by the project team.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_STAKED":{"type":"number","description":"The current number of asset parts (coins/tokens) that are locked as part of PoS and PoS partial chains.","example":0,"x-cc-api-group":"SUPPLY"},"TARGET_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) expected to be used to incetivise new block issuance. On tokens / chains that have no underlying asset infation, this will eventually be 0.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"TARGET_BLOCK_TIME":{"type":"number","description":"Target time span in seconds to produce a new block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_NUMBER":{"type":"integer","description":"The latest block number issued by the network.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIMESTAMP":{"type":"integer","description":"The unix timestamp of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIME":{"type":"number","description":"Time spent in seconds to produce the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_SIZE":{"type":"number","description":"The size in bytes of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_ISSUER":{"type":"string","description":"The miner/validator of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) created in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_BURN":{"type":"number","description":"The total amount of asset parts (coins/tokens) that were taken out of circulation in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_TRANSACTION_FEE_TOTAL":{"type":"number","description":"The sum of all the transaction fees included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TRANSACTION_COUNT":{"type":"integer","description":"The total number of transactions included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_HASHES_PER_SECOND":{"type":"number","description":"The total rounds of hashing that are estimated to have been computed in order to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_DIFFICULTY":{"type":"number","description":"It is a measure of how difficult it was to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"MKT_CAP_PENALTY":{"type":"number","description":"The total penalty applied to the mkt cap due to liquidity or quality of data. Comment example: The value is reduced to 0.01% of the original due to low volume on B+ ranked exchanges or because it is only trading on a limited number of exchanges.","x-cc-api-group":"MKT_CAP"},"EXPLORER_ADDRESSES":{"type":"array","description":"The links for the all the blockexplorer websites that support this blockchain.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the block explorer."}}},"x-cc-api-group":"RESOURCE_LINKS"},"RPC_OPERATORS":{"type":"array","description":"Provides a list of endpoints necessary for accessing RPC data on a specified blockchain network if you prefer not to run your own node.","items":{"type":"object","properties":{"OPERATOR_NAME":{"type":"string","description":"The name of the entity responsible for maintaining and providing access to the RPC endpoint."},"URL":{"type":"string","description":"The web address of the RPC endpoint, where requests can be sent to interact with the blockchain."},"REQUIRES_API_KEY":{"type":"boolean","description":"The parameter name to be used for passing the API key in requests to the RPC endpoint."},"DOCUMENTATION_URL":{"type":"string","description":"The web address where the documentation for the RPC endpoint can be found. This documentation provides details on how to interact with the blockchain via the endpoint, including available methods, parameters, and examples."},"API_KEY_PARAMETER_NAME":{"type":"string","description":"Specifies the location (e.g., header, query parameter) where the API key should be included in the request."},"API_KEY_PARAMETER_LOCATION":{"type":"string","description":"Specifies the part of the HTTP request where the API key should be included. This can vary based on the endpoint requirements, such as including the key in the URL path, query parameters, POST parameters, or HTTP headers."}}},"x-cc-api-group":"RESOURCE_LINKS"},"BURN_ADDRESSES":{"type":"array","description":"The list of addresses that are considered burn addresses for this asset.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"SUPPLY_ADDRESSES"},"LOCKED_ADDRESSES":{"type":"array","description":"The list of addresses that are considered locked addresses for this asset.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}},"x-cc-api-group":"SUPPLY_ADDRESSES"},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address to help people understand better what it is for."}}},"x-cc-api-group":"CONTROLLED_ADDRESSES"},"SUPPORTED_STANDARDS":{"type":"array","description":"The supported standards that tokens on this blockchain operate in. For blockchains that support smart contracts, supported standards are often included to tell people how to create, issue, deploy and interact with tokens based on the underlying blockchain.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the token standards supported/available on this blockchain."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SUPPORTED_PLATFORMS":{"type":"array","description":"When an asset (token, fiat, cryptocurrency, commodity) can be used on multiple blockchains, we refer to those blockchains as supported platforms. There are two types of assets that can be used on multiple blockchains: native tokens and bridged tokens. Native tokens are assets that are natively supported by a particular blockchain, while bridged tokens are assets that are \"bridged\" or \"pegged\" to another asset on a different blockchain.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"BLOCKCHAIN_ASSET_ID":{"type":"integer","description":"This is linked to the asset ID representing a specific chain."},"TOKEN_STANDARD":{"type":"string","description":"This is linked to the Blockchain field and it is one of the SUPPORTED_STANDARDS available on that platform."},"EXPLORER_URL":{"type":"string","description":"The URL for the token explorer website or tool."},"SMART_CONTRACT_ADDRESS":{"type":"string","description":"Unique identifier of the asset on the given blockchain (e.g., smart contract address for EVMs and chains that work with smart contracts, asset ID for Omni, symbol or symbol hex.issuer for XRP); format varies by chain."},"LAUNCH_DATE":{"type":"integer","description":"The data the smart contract on the supported platform was deployed or when the token was added."},"RETIRE_DATE":{"type":"integer","description":"The date the smart contract on the supported platform was retired or the token was deleted."},"TRADING_AS":{"type":"string","description":"The symbol/ticker this asset trades under on the specific blockchain platform."},"DECIMALS":{"type":"integer","description":"The number of decimal points on the specific blockchain platform for this token."},"IS_INHERITED":{"type":"boolean","description":"This is flagged to true if it comes from one of the assets that has this asset as a parent"}}},"x-cc-api-group":"SUPPORTED_PLATFORMS"},"LAYER_TWO_SOLUTIONS":{"type":"array","description":"Available layer two scaling solutions and their associated data for this blockchain.","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"CATEGORY":{"type":"string"},"PERMISSIONED_ADDRESSES":{"type":"array","description":"Special addresses of smart contracts, external user accounts or other accounts that have special rights to modify state on the smart contracts for this layer two solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address"},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ACCOUNT_TYPE":{"type":"string","description":"The type of the address"},"DESCRIPTION":{"type":"string","description":"A description for the account."}}}},"SMART_CONTRACTS_INVOLVED":{"type":"array","description":"Special addresses of smart contracts that are involved in the L2 scaling solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the smart contract"},"ADDRESS":{"type":"string","description":"The address of the smart contract"},"IS_UPGRADABLE":{"type":"boolean","description":"Tick this box if the smart contract is upgradable"},"DESCRIPTION":{"type":"string","description":"A description for the smart contract."}}}}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"PRIVACY_SOLUTIONS":{"type":"array","description":"Available privacy solutions.","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"PRIVACY_SOLUTION_FEATURES":{"type":"array","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of privacy solution feature"}}}},"PRIVACY_SOLUTION_TYPE":{"type":"string","description":"The Privacy Solution Type field indicates whether the privacy-enhancing features for transactions are integrated directly into the blockchain protocol or if they require the use of external tools or services."}}},"x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SEO_TITLE":{"type":"string","description":"The title that appears when you post this page on social media.","x-cc-api-group":"SEO"},"SEO_DESCRIPTION":{"type":"string","description":"The description that appears when you post this page on social media.","x-cc-api-group":"SEO"},"OPEN_GRAPH_IMAGE_URL":{"type":"string","description":"The image that appears when you share the asset on social media, if not available we use the logo_url.","x-cc-api-group":"SEO"},"ASSET_DESCRIPTION_EXTENDED_SEO":{"type":"string","description":"The long form description in markdown for this asset that has been reviewed or hand crafted by a person with SEO expertise to have the higest impact in rankings.","x-cc-api-group":"SEO"},"CODE_REPOSITORIES":{"type":"array","description":"The open source code repositories where the code for this blockchain / token is.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository.","example":"https://github.com/user/repo"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"OPEN_ISSUES":{"type":"integer","description":"The number of open issues in the code repository. An open issue is a reported problem, suggestion, or task related to a repository that has not been resolved or closed yet, providing a platform for users to track and discuss the ongoing development and improvements of a project."},"CLOSED_ISSUES":{"type":"integer","description":"The number of closed issues in the code repository. A closed issue is a reported problem, suggestion, or task related to a repository that have been resolved or deemed no longer relevant, providing a record of past challenges and solutions within the project development."},"OPEN_PULL_REQUESTS":{"type":"integer","description":"The number of open pull requests in the code repository. An open pull request on GitHub is a proposed change to a repository's codebase that is open for review and discussion, offering contributors an opportunity to improve the project and maintainers to accept, reject, or request changes before integrating the proposed modifications."},"CLOSED_PULL_REQUESTS":{"type":"integer","description":"The number of closed pull requests in the code repository. A closed pull request is a proposed change to a repository's codebase that has been either accepted and merged into the codebase, rejected by the maintainers, or withdrawn by the submitter, providing a record of changes that were suggested and their outcomes in the project's development history."},"CONTRIBUTORS":{"type":"integer","description":"The number of contributors in the code repository. A contributor is a users who has contributed to a project by making changes or improvements to the project's codebase, having their changes accepted and merged, and is acknowledged for their contributions in the project's development history."},"FORKS":{"type":"integer","description":"The number of forks of this code repository. A fork in GitHub is a feature that allows users to create a personal copy of another repository, enabling them to modify, experiment with, or contribute to the project without affecting the original work."},"STARS":{"type":"integer","description":"The number of stars in the code repository. A star is when a GitHub user bookmarks or wants to show appreciation for a particular repository, much like a \"like\" or \"favorite\" function on other social media platforms."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the code repository. A subscriber is a user who has chosen to receive notifications for updates or changes made to a specific repository, allowing them to closely follow the development and discussions of a project."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp we last tried to get data for this code repository."},"CREATED_AT":{"type":"number","description":"The timestamp the code repository was created."},"UPDATED_AT":{"type":"number","description":"The timestamp of the last changes that occured in the code repository."},"LAST_PUSH_TS":{"type":"number","description":"The timestamp of the last commit to the code repository."},"CODE_SIZE_IN_BYTES":{"type":"integer","description":"The total size of this code repository in bytes."},"IS_FORK":{"type":"boolean","description":"Is this repository a fork of another code repository."},"LANGUAGE":{"type":"string","description":"The primary programming language of the code repository."},"FORKED_ASSET_DATA":{"type":"object","description":"The asset this repository is forked from","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset","example":1},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"BTC"},"CODE_REPOSITORY_URL":{"type":"string","description":"The URL of the asset's code repository.","example":"https://github.com/bitcoin/bitcoin"}}},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving code repository data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository endpoint that was called."},"TYPE":{"type":"string","description":"The type of the code repository endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the code repository endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the code repository endpoint."},"EXTERNAL_CACHE_KEY":{"type":"string","description":"The External Cache key (E-Tag) is a header that provides a mechanism for web caches and clients to validate cached resources, this is used for determining if a request has change since it's last call"}}}}}},"x-cc-api-group":"SOCIAL"},"SUBREDDITS":{"type":"array","description":"The link for subreddits plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit.","example":"https://www.reddit.com/r/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the subreddit."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of currently active users in the subreddit."},"AVERAGE_POSTS_PER_DAY":{"type":"number","description":"The computed daily average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average daily post count."},"AVERAGE_POSTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average hourly post count."},"AVERAGE_COMMENTS_PER_DAY":{"type":"number","description":"The computed daily average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average daily comment count."},"AVERAGE_COMMENTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average hourly comment count."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the subreddit."},"COMMUNITY_CREATED_AT":{"type":"number","description":"The timestamp when the subreddit community was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the subreddit."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving subreddit data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit endpoint that was called."},"TYPE":{"type":"string","description":"The type of subreddit endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the subreddit endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the subreddit endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"TWITTER_ACCOUNTS":{"type":"array","description":"The link for the official X (Formerly Twitter) account plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the X account.","example":"https://x.com/user"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the X account."},"USERNAME":{"type":"string","description":"The username of the X account."},"VERIFIED":{"type":"boolean","description":"The verification status of the X account."},"VERIFIED_TYPE":{"type":"string","description":"The verification type of the X account."},"FOLLOWING":{"type":"integer","description":"The number of accounts followed by this X account."},"FOLLOWERS":{"type":"integer","description":"The number of followers of this X account."},"FAVOURITES":{"type":"integer","description":"The total number of tweets favorited by this X account."},"LISTS":{"type":"integer","description":"The total number of lists this X account is a member of."},"STATUSES":{"type":"integer","description":"The total number of tweets and retweets made by this X account."},"ACCOUNT_CREATED_AT":{"type":"number","description":"The timestamp of when the X account was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the X account."}}},"x-cc-api-group":"SOCIAL"},"DISCORD_SERVERS":{"type":"array","description":"The link for Discord servers plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server.","example":"https://discord.com/invite/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Discord server."},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Discord server."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of online users in this Discord server."},"PREMIUM_SUBSCRIBERS":{"type":"integer","description":"The number of premium subscribers in this Discord server."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Discord server."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Discord server data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server endpoint that was called."},"TYPE":{"type":"string","description":"The type of Discord server endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Discord server endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Discord server endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"TELEGRAM_GROUPS":{"type":"array","description":"The link for the official Telegram pages plus data we collect from them.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group.","example":"https://t.me/s/channelName"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Telegram group."},"USERNAME":{"type":"string","description":"The username of the Telegram group."},"MEMBERS":{"type":"integer","description":"The total number of members in the Telegram group."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Telegram group."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Telegram group data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group for this endpoint call."},"TYPE":{"type":"string","description":"The type of endpoint used for retrieving Telegram group data."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Telegram group endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Telegram group endpoint."}}}}}},"x-cc-api-group":"SOCIAL"},"ASSOCIATED_CONTACT_DETAILS":{"type":"array","description":"Associated contact addresses for the team members, employees or affiliated contacts.","items":{"type":"object","properties":{"CONTACT_TYPE":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}},"x-cc-api-group":"CONTACT"},"OTHER_SOCIAL_NETWORKS":{"type":"array","description":"Any other asset related social networks.","items":{"type":"object","properties":{"NAME":{"type":"string"},"URL":{"type":"string","description":"The URL of the social network.","example":"https://example.com"}}},"x-cc-api-group":"SOCIAL"},"HELD_TOKEN_SALE":{"type":"boolean","description":"Use this flag to get access to all the token sale fields.","x-cc-api-group":"TOKEN_SALE"},"TOKEN_SALES":{"type":"array","description":"An array of token sales.","items":{"type":"object","properties":{"TOKEN_SALE_TYPE":{"type":"string","description":"The type of token sale."},"TOKEN_SALE_DATE_START":{"type":"integer","description":"The date and time the ICO will start at. Time is in GMT."},"TOKEN_SALE_DATE_END":{"type":"integer","description":"The date the token sale will end at. Time is in GMT."},"TOKEN_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the token sale."},"TOKEN_SALE_TEAM_MEMBERS":{"type":"array","description":"The team members that are working on the project","items":{"type":"object","properties":{"TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"TOKEN_SALE_WEBSITE_URL":{"type":"string","description":"The link of the ICO page."},"TOKEN_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available to investors for the token sale. This does not include the reserve. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_RESERVE_SUPPLY":{"type":"number","description":"Total number of tokens kept in reserve or allocated to team mebers. This does not include the tokens sold to investors. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_SUPPLY_ADDED":{"type":"number","description":"Total number of tokens added in this token sale. This is equal to TOKEN_SALE_SUPPLY + TOKEN_SALE_RESERVE_SUPPLY."},"TOKEN_SALE_PRE_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available before this this token sale. This is the sum of all the previous sales, on the first token sale this will be 0. TOKEN_SALE_POST_SALE_SUPPLY  = TOKEN_SALE_PRE_SALE_SUPPLY + TOKEN_SALE_SUPPLY_ADDED."},"TOKEN_SUPPLY_POST_SALE":{"type":"string","description":"The numbers of tokens post Sale. This should be all the locked tokens, the team tokens and all other tokens not included in the sale. It should be equal to TOKEN_SALE_RESERVE + TOKEN_SALE_SUPPLY."},"TOKEN_SALE_PAYMENT_METHOD_TYPE":{"type":"string","description":"The payment method for the token sale. The currencies that are accepted in this token sale."},"TOKEN_SALE_START_PRICE":{"type":"number","description":"The start price of the token sale."},"TOKEN_SALE_START_PRICE_CURRENCY":{"type":"string","description":"The currency of the start price."},"TOKEN_SALE_FUNDING_CAP":{"type":"number","description":"Hard cap refers to the maximum number of tokens that can be sold, is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_CAP_CURRENCY":{"type":"string","description":"This is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_TARGET":{"type":"number","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the token sale (tokens sold).","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this token sale."},"TOKEN_SALE_INVESTORS_SPLIT":{"type":"array","description":"The way the tokens that are sold are split","items":{"type":"object","properties":{"CATEGORY":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_RESERVE_SPLIT":{"type":"array","description":"The way the tokens that are not sold are split. The token sale TOKEN_SALE_RESERVE total should be the sum of all the TOKEN_SALE_RESERVE_SPLITs. Sum of TOKEN_SALE_RESERVE_SPLIT and TOKEN_SALE_SUPPLY  should be equal to TOKEN_SUPPLY_POST_SALE.","items":{"type":"object","properties":{"CATEGORY":{"type":"string","description":"The type of reserve split"},"TOTAL_TOKENS":{"type":"number","description":"Total tokens set aside"},"ADDRESS":{"type":"string","description":"The address where these tokens as kept"},"DESCRIPTION":{"type":"string","description":"A description for how they intend to use the funds."}}}},"TOKEN_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the token sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_LAUNCHPADS":{"type":"array","description":"Launchpads/Exchanges in which the offering has/is taking place","items":{"type":"object","properties":{"NAME":{"type":"string","description":"Launchpad/Exchange in which the offering is taking place"}}}},"TOKEN_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the token sales is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the token sales is based or has a subsidiary."}}}},"TOKEN_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"TOKEN_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the ICO on the structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the ICO on the structure."}}}},"TOKEN_SALE_LEGAL_FORMS":{"type":"array","description":"The type of company or subsidiaries.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of company or subsidiaries."}}}},"TOKEN_SALE_SECURITY_AUDIT_COMPANIES":{"type":"array","description":"The companies that did the security audit on the smart contract.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the companies that did the security audit on the smart contract."},"AUDIT_DOCUMENT":{"type":"string"}}}}}},"x-cc-api-group":"TOKEN_SALE"},"HELD_EQUITY_SALE":{"type":"boolean","description":"Use this flag to get access to all the equity sale fields.","x-cc-api-group":"EQUITY_SALE"},"EQUITY_SALES":{"type":"array","description":"An array of equity sales. An equity sale refers to shares in the company behind a token, a token sales refers to selling tokens that don't give you rights in the company","items":{"type":"object","properties":{"EQUITY_SALE_STAGE":{"type":"string","description":"The stage of equity sale."},"EQUITY_SALE_ENTITY_NAME":{"type":"string","description":"The leagl name of the company that the equity will be related to."},"EQUITY_SALE_ANNOUNCEMENT_DATE":{"type":"integer","description":"The date and time the equity sale was announced. Time is in UTC."},"EQUITY_SALE_CLOSE_DATE":{"type":"integer","description":"The date the equity sale will/has ended at. Time is in UTC."},"EQUITY_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the equity sale."},"EQUITY_SALE_TEAM_MEMBERS":{"type":"array","description":"The CxO members that are working at the company.","items":{"type":"object","properties":{"JOB_TITLE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"EQUITY_SALE_ENTITY_URL":{"type":"string","description":"The link of the equity sale page."},"EQUITY_SALE_SUPPLY":{"type":"number","description":"Total number of shares available for the equity sale."},"TOTAL_EQUITY_SUPPLY_POST_RAISE":{"type":"number","description":"Total number of shares the company has issued including the shares in this equity sale."},"EQUITY_SALE_FUNDING_TARGET":{"type":"number","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the equity sale.","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"TOTAL_EQUITY":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this equity sale."},"EQUITY_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the equity sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_EQUITY_RECEIVED":{"type":"number"},"INVESTMENT_VALUE":{"type":"number"},"INVESTMENT_CURRENCY":{"type":"string","description":"The currency for funds raised."},"IS_LEAD_INVESTOR":{"type":"boolean"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the equity sale is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the equity sales is based or has a subsidiary."}}}},"EQUITY_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"EQUITY_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the company on the equity sale structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the company on the equity sale structure."}}}}}},"x-cc-api-group":"EQUITY_SALE"},"ROOT_ASSET_ID":{"type":"integer","description":"Identifies the root asset in a chain of derived or related assets, essential for tracing asset lineage. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":2,"x-cc-api-group":"ID"},"ROOT_ASSET_SYMBOL":{"type":"string","description":"The symbol of the root asset, facilitating recognition and correlation within asset hierarchies. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":"ETH","x-cc-api-group":"ID"},"ROOT_ASSET_TYPE":{"type":"string","description":"Specifies the fundamental category of the root asset, crucial for understanding the base or origin of an asset's classification. Null if the asset does not have a parent. For example, the fiat USD would be the root asset for tokens CUSDC or USDCE, and in this case, the ROOT_ASSET_TYPE would be fiat.","example":"BLOCKCHAIN","x-cc-api-group":"ID"},"PRICE_USD":{"type":"number","description":"Denotes the current value / price of the asset in USD. This value is used to populate toplists and is calculated based on real-time market data.","x-cc-api-group":"PRICE"},"PRICE_USD_SOURCE":{"type":"string","description":"Denotes the source we used for the USD value / price.","x-cc-api-group":"PRICE"},"PRICE_USD_LAST_UPDATE_TS":{"type":"integer","description":"The Unix timestamp of the last update to the USD value / price of the asset.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_ASSET":{"type":"object","description":"Denotes the convesion asset ID, SYMBOL and ASSET_TYPE.","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"ASSET_TYPE":{"type":"string","description":"The type of the asset (FIAT, BLOCKCHAIN, TOKEN, etc.)","example":"BLOCKCHAIN"}},"x-cc-api-group":"PRICE"},"PRICE_CONVERSION_RATE":{"type":"number","description":"Denotes the current value / price of USD in the requested quote asset.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_VALUE":{"type":"number","description":"Denotes the current value / price of the asset in the requested quote currency.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_SOURCE":{"type":"string","description":"Denotes the source we used for the conversion asset value / price.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_LAST_UPDATE_TS":{"type":"integer","description":"The Unix timestamp of the last update to the conversion asset value / price.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"CIRCULATING_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This is used to rank assets in toplists based on their circulating market capitalization.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This figure gives an overview of the total value of all issued tokens for a given asset.","x-cc-api-group":"MKT_CAP"},"CIRCULATING_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the CIRCULATING_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the TOTAL_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 23 hours ago and now. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price. This is the same as the SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 6 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_7_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price. This is the same as the SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 29 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_30_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price. This is the same as the SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"TOPLIST_BASE_RANK":{"type":"object","description":"Indicates the asset’s position in our global asset ranking. There are multiple ranks, each is determined by at least one factor, such as asset launch date, market cap, trading volume, etc..","properties":{"CREATED_ON":{"type":"integer","description":"Rank based on CREATED_ON sorted ASC from earliest created to most recent one."},"LAUNCH_DATE":{"type":"integer","description":"Rank based on LAUNCH_DATE sorted ASC from earliest launched to most recently launched one."},"PRICE_USD":{"type":"integer","description":"Rank based on PRICE_USD sorted DESC from most expensive asset to cheapest one."},"CIRCULATING_MKT_CAP_USD":{"type":"integer","description":"Rank based on CIRCULATING_MKT_CAP_USD sorted DESC from highest circulating market cap to lowest."},"TOTAL_MKT_CAP_USD":{"type":"integer","description":"Rank based on TOTAL_MKT_CAP_USD sorted DESC from highest total market cap to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."}},"x-cc-api-group":"TOPLIST_RANK"},"TOTAL_ENDPOINTS_OK":{"type":"integer","description":"Total endpoints we have successfully called in the last 24 hours.","x-cc-api-group":"INTERNAL"},"TOTAL_ENDPOINTS_WITH_ISSUES":{"type":"integer","description":"Total endpoints that have not had a successfull call in the last 24 hours.","x-cc-api-group":"INTERNAL"}}},"ASSET_METADATA_OBJECT_RESPONSE":{"type":"object","properties":{"Data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ASSET_METADATA_OBJECT"}},"Warn":{"type":"object","description":"This object is used when multiple parameters are validated and a partial response is returned due to some invalid request parameters. It informs the client of the issues encountered while processing the request and provides details about the specific parameters involved.","properties":{"type":{"type":"integer","description":"A public facing warning type. If you want to treat a specific warning use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the warning","example":"There are multiple instruments matching your query for WETH-USDT on uniswapv3. We have provided the best match based on our criteria. Other matches include: 0x4e68ccd3e89f51c3074ca5072bbac773960dfa36_2. To select a different match just pass the pool smart contract address and the chain id."},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the warning","example":"instrument"},"values":{"type":"object","description":"The values responsible for the warning","example":{},"items":{"type":"object","properties":{}}}}}}},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ASSET_TOPLIST":{"type":"object","x-visible-in-ai":false,"properties":{"STATS":{"type":"object","description":"Provides detailed information about the pagination of the toplist, including current page, page size, and total assets available. This metadata enables users to navigate and manage the displayed toplist data efficiently.","properties":{"PAGE":{"type":"integer","description":"Indicates the current page number in the toplist, helping users track their position within paginated data.","example":1},"PAGE_SIZE":{"type":"integer","description":"Specifies the maximum number of assets displayed on the current page, allowing control over the number of items retrieved per request.","example":10},"TOTAL_ASSETS":{"type":"integer","description":"The total number of assets in the toplist that match the applied filters. This value gives users an overview of the dataset's size.","example":2000}}},"LIST":{"type":"array","description":"Contains the sorted and filtered toplist of assets, structured according to the specified criteria (e.g., by ranking metrics or filtering options). This array provides direct access to the asset data matching the user’s query.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"ID_LEGACY":{"type":"integer","description":"The legacy previous asset management system ID","example":7605,"x-cc-api-group":"ID"},"ID_PARENT_ASSET":{"type":"integer","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"ID_ASSET_ISSUER":{"type":"integer","description":"This field identifies the original creator of the token. It provides essential information about the entity, individual or contract rules responsible for issuing the token initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the token, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"COMMENT":{"type":"string","description":"Any internal comments you might have for this asset","example":"","x-cc-api-group":"INTERNAL"},"IS_PUBLIC":{"type":"boolean","description":"This is flagged to false when assets are deleted/hidden","x-cc-api-group":"ID"},"ASSIGNED_TO":{"type":"integer","description":"Internal user id of the user who is in charge of updating and maintaining the asset","x-cc-api-group":"INTERNAL"},"ASSIGNED_TO_USERNAME":{"type":"string","description":"Internal username of the user who is in charge of updating and maintaining the asset at the time of the asset assignment (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"CREATED_ON":{"type":"number","description":"Asset internal creation unix ts in our system","example":1681990528,"format":"unix_timestamp","x-cc-api-group":"BASIC"},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the asset","x-cc-api-group":"INTERNAL"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the asset at the time of the asset creation (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"UPDATED_ON":{"type":"number","description":"Asset internal last updated unix ts in our system","example":1681990528,"format":"unix_timestamp","x-cc-api-group":"BASIC"},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the asset","x-cc-api-group":"INTERNAL"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the asset at the time of the asset update (the user might have changed their username but not their user id)","example":"","x-cc-api-group":"INTERNAL"},"PUBLIC_NOTICE":{"type":"string","description":"A public notice for this asset.","x-cc-api-group":"BASIC"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"ASSET_STATUS":{"type":"string","description":"The current operational status of the asset and its underlying project","x-cc-api-group":"CLASSIFICATION"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"INDEX_MARKET_NAME":{"type":"string","description":"The internal CoinDesk Indices API market name (index family) for this index.","x-cc-api-group":"ID"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"ISO_NUMERIC_CODE":{"type":"string","description":"The ISO Numeric Code is a unique three-digit numerical identifier assigned to each fiat currency by the International Organization for Standardization (ISO). It is a part of the ISO 4217 standard, which establishes a systematic framework for classifying currencies in international trade and finance. The ISO 4217 standard comprises three components: the alphabetic code, the numeric code, and the minor unit.","x-cc-api-group":"CLASSIFICATION"},"ASSET_SYMBOL_GLYPH":{"type":"string","description":"The Asset Symbol Glyph represents the visual or typographic mark associated with an asset, such as \"$\" for USD or \"₿\" for Bitcoin. It is distinct from the asset symbol (e.g., USD, BTC) and provides a recognizable representation used in financial contexts, UIs, and documentation.","x-cc-api-group":"CLASSIFICATION"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"},"ASSET_ISSUER_NAME":{"type":"string","description":"This field identifies the original creator of the asset. It provides essential information about the entity, individual or contract rules responsible for issuing the asset initially and/or maintaining the supply. In the case of of bridged assets, this is the bridge operator and the parent will have its own issuer. You can go up the parent chain and figure out what counterparty risk you are exposed to when trading a specific asset. This clarification ensures that users can directly trace the origin of the asset, understanding its issuance history and the primary issuer's credentials.","x-cc-api-group":"ID"},"PARENT_ASSET_SYMBOL":{"type":"string","description":"This refers to the base, parent, or main asset to which a token is linked or pegged, signifying that the token acts as a representation of the parent asset. When a token loses its connection to a parent asset due to events such as hacks or the issuing entity's decision to not honor the peg—similar to how TerraUSD detached from its USD peg—the PARENT_ASSET_SYMBOL is removed because the token no longer serves as a true representation of the parent asset. In order to remove the parent we need clear communication from the company who is in charge of keeping the peg. We add add a plublic notice and the include the communication in the Other Document URLs.","x-cc-api-group":"ID"},"RESERVES_BREAKDOWN":{"type":"array","description":"A detailed breakdown of reserves backing a stablecoin asset, covering various categories such as cash, cryptocurrency, bonds, and other investments for transparency.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS","items":{"type":"object","properties":{"RESERVE_TYPE":{"type":"string","description":"The type of asset used for reserve collateralization, such as cash, crypto, or bonds."},"HOLDING_ADDRESSES":{"type":"array","description":"An array of objects containing the blockchain chain and the holding address (wallet or smart contract) for proof of reserves.","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The blockchain on which the holding address (smart contract or wallet) is located."},"ADDRESS":{"type":"string","description":"The address holding the relevant asset or token, such as a smart contract or wallet. This can be used for proof of reserves."}}}},"PERCENTAGE":{"type":"number","description":"The percentage of the total reserves allocated to this particular reserve type."},"DESCRIPTION":{"type":"string","description":"A brief description for the reserves, clarifying the nature of the reserve type."},"COMMENTS":{"type":"string","description":"Any additional internal comments or information about the reserves."}}}},"PREVIOUS_ASSET_SYMBOLS":{"type":"array","description":"A list of symbols that were previously associated with this asset.","x-cc-api-group":"BASIC","items":{"type":"object","properties":{"SYMBOL":{"type":"string","description":"A symbol this asset was previously associated with."},"SYMBOL_USAGE_START_DATE":{"type":"integer","description":"Indicates the date this past symbol started being used."},"SYMBOL_USAGE_END_DATE":{"type":"integer","description":"Indicates the date this past symbol stopped being used."},"DESCRIPTION":{"type":"string","description":"A description for why this symbol existed or was changed."}}}},"HAS_SMART_CONTRACT_CAPABILITIES":{"type":"boolean","description":"Can you build smart contracts on top of this?","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"SMART_CONTRACT_SUPPORT_TYPE":{"type":"string","description":"This field classifies digital assets based on their level of smart contract support, ranging from assets with no verifiable smart contract capabilities to those offering full autonomy. This categorization helps users and systems understand an asset's technical capacity for smart contract execution, crucial for assessing its utility and potential applications.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"IS_EXCLUDED_FROM_PRICE_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type price toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_VOLUME_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type volume toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"IS_EXCLUDED_FROM_MKT_CAP_TOPLIST":{"type":"boolean","description":"Indicates whether the asset should be excluded from the overall and asset type market capitalization toplist rankings. But this will still be included in the industry ones.","x-cc-api-group":"CLASSIFICATION"},"MKT_CAP_EXCLUSION_REASON":{"type":"string","description":"Specifies the reason why the asset is excluded from the market capitalization toplist, aiding in documentation and communication.","x-cc-api-group":"CLASSIFICATION"},"IS_USED_IN_DEFI":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in DeFi. Shows if is a blockchain-based form of finance that does not rely on central financial intermediaries. (DeFi Project).","x-cc-api-group":"INTERNAL"},"IS_USED_IN_NFT":{"type":"boolean","description":"This is used when the sole purpose of the token/blockchain is for it to be used in NFTs. Is this used in any non-fungible token capacity. Based on this flag we show the nft list.","x-cc-api-group":"INTERNAL"},"WEBSITE_URL":{"type":"string","description":"The link for the official project website.","x-cc-api-group":"RESOURCE_LINKS"},"BLOG_URL":{"type":"string","description":"The link for the official blog.","x-cc-api-group":"RESOURCE_LINKS"},"WHITE_PAPER_URL":{"type":"string","description":"A white paper, also written as \"whitepaper\", a document released by the project that gives investors technical information about its concept, its purpose, how it works, etc.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_METHODOLOGY":{"type":"string","description":"This field stores a URL linking to the Index Methodology document, which provides detailed information about the methodology used for constructing an index.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_FACTSHEET":{"type":"string","description":"This field stores a URL linking to the Index Factsheet document. The factsheet provides a concise overview of the index, including key metrics, methodology summary, and other relevant information for stakeholders.","x-cc-api-group":"RESOURCE_LINKS"},"INDEX_LINKED_PRODUCTS":{"type":"array","description":"A structured field representing a list of products linked to a specific index. This includes associated details such as names, symbols or URLs","x-cc-api-group":"RESOURCE_LINKS","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The primary name or title associated with the entity. This is a general string used to identify the entity uniquely or descriptively."},"SYMBOL":{"type":"string","description":"A shorthand or abbreviated representation of the entity's name, typically used for quick reference or symbolic purposes."},"URL":{"type":"string","description":"A web address or hyperlink associated with the entity. It links to additional resources, references, or detailed information."},"COMMENTS":{"type":"string","description":"A text field for additional notes or commentary about the entity. It supports longer text inputs and is accessible only to users with the \"asset_management_viewer\" role."}}}},"PROSPECTUS":{"type":"string","description":"This field is designated for uploading the prospectus document of an Exchange-Traded Fund (ETF). The prospectus is a comprehensive report that details the investment's objectives, strategies, risks, and financials. It is essential for investor transparency and regulatory compliance. ","x-cc-api-group":"RESOURCE_LINKS"},"OTHER_DOCUMENT_URLS":{"type":"array","description":"Other documents that might be relevant to the asset, they should all be .PDFs.","x-cc-api-group":"RESOURCE_LINKS","items":{"type":"object","properties":{"TYPE":{"type":"string"},"VERSION":{"type":"integer"},"URL":{"type":"string"},"COMMENT":{"type":"string"}}}},"PROJECT_LEADERS":{"type":"array","description":"An array of individuals that contains founders, whitepaper authors, investors, resechers, and other important people related to a project.","x-cc-api-group":"CONTACT","items":{"type":"object","properties":{"LEADER_TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"ASSET_CUSTODIANS":{"type":"array","description":"Custodians that support this asset.","x-cc-api-group":"CUSTODIANS","items":{"type":"object","properties":{"NAME":{"type":"string"}}}},"ASSET_SECURITY_METRICS":{"type":"array","description":"","x-cc-api-group":"SECURITY_METRICS","items":{"type":"object","properties":{"NAME":{"type":"string"},"OVERALL_SCORE":{"type":"number"},"OVERALL_RANK":{"type":"integer"},"UPDATED_AT":{"type":"number"}}}},"ASSET_INDUSTRIES":{"type":"array","description":"The asset industries that asset operates in.","x-cc-api-group":"CLASSIFICATION","items":{"type":"object","properties":{"ASSET_INDUSTRY":{"type":"string"},"JUSTIFICATION":{"type":"string","description":"A justification for putting an asset in this industry."}}}},"ASSET_DYNAMIC_FAQS":{"type":"array","description":"AI-generated frequently asked questions about the asset, automatically updated based on market conditions and events.","x-cc-api-group":"AI_INSIGHTS","items":{"type":"object","properties":{"TYPE_KEY":{"type":"string"},"NAME":{"type":"string","description":"The question or title for this FAQ entry, e.g. \"Why is the {asset symbol} price down today?\""},"LAST_UPDATE_TS":{"type":"number","description":"The timestamp when this FAQ entry was last generated or updated by AI."},"MOVING_24_HOUR_CHANGE_PERCENTAGE":{"type":"number","description":"The 24 hours percentage percentage change when the asset was news summary was created"},"TLDR":{"type":"string","description":"A brief summary with a paragraph and 3 bullet points in markdown format."},"TEXT":{"type":"string","description":"The detailed answer to the FAQ question in markdown format."},"SOURCES":{"type":"array","description":"List of sources used to generate this FAQ entry.","items":{"type":"object","properties":{"TITLE":{"type":"string","description":"The title of the article, post, or document"},"SOURCE_NAME":{"type":"string","description":"The name of the source (e.g., \"CoinDesk\", \"Twitter\", \"GitHub\")"},"URL":{"type":"string"},"PUBLISHED_ON":{"type":"number","description":"The timestamp when this the news article refernced was originally published."}}}},"LLM_MODEL_NAME":{"type":"string","description":"The LLM model that generated this FAQ entry (e.g., \"openai|gpt-4\", \"anthropic|3-sonnet\")"},"SCORE":{"type":"number","description":"AI confidence score - for price movement or positive - negative score for latest news summary:  1 - strongly positive news, 0 strongly negative news for this FAQ entry (0.0 - 1.0)"}}}},"ASSET_ALTERNATIVE_IDS":{"type":"array","description":"Alternative data platforms that also support this asset with their specific asset id.","x-cc-api-group":"BASIC","items":{"type":"object","properties":{"NAME":{"type":"string"},"ID":{"type":"string"}}}},"ASSET_DESCRIPTION":{"type":"string","description":"The long form description in markdown for this asset.","x-cc-api-group":"DESCRIPTION"},"ASSET_DESCRIPTION_SUMMARY":{"type":"string","description":"The short form description text only for this asset.","x-cc-api-group":"DESCRIPTION_SUMMARY"},"ASSET_DESCRIPTION_SNIPPET":{"type":"string","description":"The shortest form description text only for this asset. This is a lot more limited than the summary. Generally this is a one or maximum two sentences.","x-cc-api-group":"BASIC"},"CONSENSUS_MECHANISMS":{"type":"array","description":"The types of consensus mechanisms this network / blockchain / token uses. This is a list of the fault-tolerant mechanism families that are used to achieve the necessary agreement on a single data value or a single state of the network among distributed processes or multi-agent systems.","x-cc-api-group":"CLASSIFICATION","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of consensus this blockhain / networks uses."}}}},"CONSENSUS_ALGORITHM_TYPES":{"type":"array","description":"The types of consensus algorithms this blockchain uses. This is dependent on the consensus mechanisms used by the network / blockchain / token. For blockchains that are proof of work this would in most cases have the mining algorithm. For hybrid assets, this would be a list of mining and proof of stake and other algorithm used for reaching consensus.","x-cc-api-group":"CLASSIFICATION","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the algorithm this blockchain uses for the consensus mechanism."},"DESCRIPTION":{"type":"string","description":"A description for the algorithm type."}}}},"HASHING_ALGORITHM_TYPES":{"type":"array","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc.","x-cc-api-group":"CLASSIFICATION","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The types of algorithms this blockchain uses for hashing blocks, transactions etc."}}}},"ASSET_DECIMAL_POINTS":{"type":"integer","description":"The total decimal places this asset can be divided into. E.g. 8 for BTC (1 Satoshi), 18 for ETH (1 Wei). Generally blockchains store all units as integers and this is the number you need to divide the lowest unit of accounting by to get the common unit of measure used for the asset.","x-cc-api-group":"BASIC"},"SUPPLY_MAX":{"type":"number","description":"The maximum number of asset parts (coins/tokens) that will ever be issued (supply_circulating + supply_burnt + supply_locked + all supply that has not been issued yet but is planned to be issued in the future). For assets (coins/tokens) that have infinite supply, we use -1.","example":20999999.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_ISSUED":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far. (supply_circulating + supply_locked + supply_burnt)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_TOTAL":{"type":"number","description":"The number of asset parts (coins/tokens) that have been issued so far excluding burnt tokens. (supply_circulating + supply_locked)","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_CIRCULATING":{"type":"number","description":"Also referred to as free float or public float. The number of asset parts (coins/tokens) that are available to be traded and it excludes burnt supply and locked supply.","example":19427875,"x-cc-api-group":"SUPPLY"},"SUPPLY_FUTURE":{"type":"number","description":"The number of asset parts (coins/tokens) that are planned to be issued in the future. (supply_max - supply_issued)","example":1572124.9769,"x-cc-api-group":"SUPPLY"},"SUPPLY_LOCKED":{"type":"number","description":"The number of asset parts (coins/tokens) that are currently not transferable until certain conditions are met. Locked supply is generally held by team members, DAOs, foundations, bridges, stakers, liquidity pools, etc.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_BURNT":{"type":"number","description":"The number of asset parts (coins/tokens) that have been sent to addresses/locations that are no longer accessible. They are permanently removed from the circulating supply on purpose, this does not include lost tokens sent to wallets that do not exist or sent to wallets that users no longer have access to, the address of burnt tokens is determined by the project team.","example":0,"x-cc-api-group":"SUPPLY"},"SUPPLY_STAKED":{"type":"number","description":"The current number of asset parts (coins/tokens) that are locked as part of PoS and PoS partial chains.","example":0,"x-cc-api-group":"SUPPLY"},"TARGET_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) expected to be used to incetivise new block issuance. On tokens / chains that have no underlying asset infation, this will eventually be 0.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"TARGET_BLOCK_TIME":{"type":"number","description":"Target time span in seconds to produce a new block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_NUMBER":{"type":"integer","description":"The latest block number issued by the network.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIMESTAMP":{"type":"integer","description":"The unix timestamp of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TIME":{"type":"number","description":"Time spent in seconds to produce the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_SIZE":{"type":"number","description":"The size in bytes of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_ISSUER":{"type":"string","description":"The miner/validator of the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_MINT":{"type":"number","description":"New asset parts (coins/tokens) created in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_BURN":{"type":"number","description":"The total amount of asset parts (coins/tokens) that were taken out of circulation in the most recently issued block.","x-cc-api-group":"SUPPLY"},"LAST_BLOCK_TRANSACTION_FEE_TOTAL":{"type":"number","description":"The sum of all the transaction fees included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_TRANSACTION_COUNT":{"type":"integer","description":"The total number of transactions included in the most recently issued block.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_HASHES_PER_SECOND":{"type":"number","description":"The total rounds of hashing that are estimated to have been computed in order to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"LAST_BLOCK_DIFFICULTY":{"type":"number","description":"It is a measure of how difficult it was to produce the most recently issued block. Use -1 for not applicable.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS"},"MKT_CAP_PENALTY":{"type":"number","description":"The total penalty applied to the mkt cap due to liquidity or quality of data. Comment example: The value is reduced to 0.01% of the original due to low volume on B+ ranked exchanges or because it is only trading on a limited number of exchanges.","x-cc-api-group":"MKT_CAP"},"EXPLORER_ADDRESSES":{"type":"array","description":"The links for the all the blockexplorer websites that support this blockchain.","x-cc-api-group":"RESOURCE_LINKS","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the block explorer."}}}},"RPC_OPERATORS":{"type":"array","description":"Provides a list of endpoints necessary for accessing RPC data on a specified blockchain network if you prefer not to run your own node.","x-cc-api-group":"RESOURCE_LINKS","items":{"type":"object","properties":{"OPERATOR_NAME":{"type":"string","description":"The name of the entity responsible for maintaining and providing access to the RPC endpoint."},"URL":{"type":"string","description":"The web address of the RPC endpoint, where requests can be sent to interact with the blockchain."},"REQUIRES_API_KEY":{"type":"boolean","description":"The parameter name to be used for passing the API key in requests to the RPC endpoint."},"DOCUMENTATION_URL":{"type":"string","description":"The web address where the documentation for the RPC endpoint can be found. This documentation provides details on how to interact with the blockchain via the endpoint, including available methods, parameters, and examples."},"API_KEY_PARAMETER_NAME":{"type":"string","description":"Specifies the location (e.g., header, query parameter) where the API key should be included in the request."},"API_KEY_PARAMETER_LOCATION":{"type":"string","description":"Specifies the part of the HTTP request where the API key should be included. This can vary based on the endpoint requirements, such as including the key in the URL path, query parameters, POST parameters, or HTTP headers."}}}},"BURN_ADDRESSES":{"type":"array","description":"The list of addresses that are considered burn addresses for this asset.","x-cc-api-group":"SUPPLY_ADDRESSES","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}}},"LOCKED_ADDRESSES":{"type":"array","description":"The list of addresses that are considered locked addresses for this asset.","x-cc-api-group":"SUPPLY_ADDRESSES","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"DESCRIPTION":{"type":"string","description":"A description for the address."}}}},"CONTROLLED_ADDRESSES":{"type":"array","description":"The list of designated addresses used to manage and store assets within an investment portfolio or on behalf of clients. This includes addresses where cryptocurrencies, securities, or other assets are held, reflecting the diverse nature of modern investment strategies. It encompasses addresses used by exchanges, ETFs, and companies to maintain their investment reserves or operational funds.","x-cc-api-group":"CONTROLLED_ADDRESSES","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"The is linked to the asset representing a specific chain."},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ADDRESS_PURPOSE":{"type":"string","description":"The role of the address within the company's operations, aiding in precise asset management and regulatory compliance. This categorization distinguishes between addresses for investments, client custody, and operational expenses, streamlining asset control and reporting."},"CONTROL_TYPE":{"type":"string","description":"Classifies the level and nature of control the company exercises over various cryptocurrency addresses. This categorization helps delineate the operational and security protocols associated with each address, ranging from single-key direct control to multi-signatory arrangements and even non-control strategies."},"NAME":{"type":"string","description":"The name of the address. Contract name or just the common name for this address."},"DESCRIPTION":{"type":"string","description":"A description for the address to help people understand better what it is for."}}}},"SUPPORTED_STANDARDS":{"type":"array","description":"The supported standards that tokens on this blockchain operate in. For blockchains that support smart contracts, supported standards are often included to tell people how to create, issue, deploy and interact with tokens based on the underlying blockchain.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the token standards supported/available on this blockchain."}}}},"SUPPORTED_PLATFORMS":{"type":"array","description":"When an asset (token, fiat, cryptocurrency, commodity) can be used on multiple blockchains, we refer to those blockchains as supported platforms. There are two types of assets that can be used on multiple blockchains: native tokens and bridged tokens. Native tokens are assets that are natively supported by a particular blockchain, while bridged tokens are assets that are \"bridged\" or \"pegged\" to another asset on a different blockchain.","x-cc-api-group":"SUPPORTED_PLATFORMS","items":{"type":"object","properties":{"BLOCKCHAIN":{"type":"string","description":"This is linked to the asset representing a specific chain."},"BLOCKCHAIN_ASSET_ID":{"type":"integer","description":"This is linked to the asset ID representing a specific chain."},"TOKEN_STANDARD":{"type":"string","description":"This is linked to the Blockchain field and it is one of the SUPPORTED_STANDARDS available on that platform."},"EXPLORER_URL":{"type":"string","description":"The URL for the token explorer website or tool."},"SMART_CONTRACT_ADDRESS":{"type":"string","description":"Unique identifier of the asset on the given blockchain (e.g., smart contract address for EVMs and chains that work with smart contracts, asset ID for Omni, symbol or symbol hex.issuer for XRP); format varies by chain."},"LAUNCH_DATE":{"type":"integer","description":"The data the smart contract on the supported platform was deployed or when the token was added."},"RETIRE_DATE":{"type":"integer","description":"The date the smart contract on the supported platform was retired or the token was deleted."},"TRADING_AS":{"type":"string","description":"The symbol/ticker this asset trades under on the specific blockchain platform."},"DECIMALS":{"type":"integer","description":"The number of decimal points on the specific blockchain platform for this token."},"IS_INHERITED":{"type":"boolean","description":"This is flagged to true if it comes from one of the assets that has this asset as a parent"}}}},"LAYER_TWO_SOLUTIONS":{"type":"array","description":"Available layer two scaling solutions and their associated data for this blockchain.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"CATEGORY":{"type":"string"},"PERMISSIONED_ADDRESSES":{"type":"array","description":"Special addresses of smart contracts, external user accounts or other accounts that have special rights to modify state on the smart contracts for this layer two solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the address"},"ADDRESS":{"type":"string","description":"The address of the smart contracts, external user accounts or other account"},"ACCOUNT_TYPE":{"type":"string","description":"The type of the address"},"DESCRIPTION":{"type":"string","description":"A description for the account."}}}},"SMART_CONTRACTS_INVOLVED":{"type":"array","description":"Special addresses of smart contracts that are involved in the L2 scaling solution.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of the smart contract"},"ADDRESS":{"type":"string","description":"The address of the smart contract"},"IS_UPGRADABLE":{"type":"boolean","description":"Tick this box if the smart contract is upgradable"},"DESCRIPTION":{"type":"string","description":"A description for the smart contract."}}}}}}},"PRIVACY_SOLUTIONS":{"type":"array","description":"Available privacy solutions.","x-cc-api-group":"ASSET_TYPE_SPECIFIC_METRICS","items":{"type":"object","properties":{"NAME":{"type":"string"},"WEBSITE_URL":{"type":"string"},"DESCRIPTION":{"type":"string"},"PRIVACY_SOLUTION_FEATURES":{"type":"array","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The name of privacy solution feature"}}}},"PRIVACY_SOLUTION_TYPE":{"type":"string","description":"The Privacy Solution Type field indicates whether the privacy-enhancing features for transactions are integrated directly into the blockchain protocol or if they require the use of external tools or services."}}}},"SEO_TITLE":{"type":"string","description":"The title that appears when you post this page on social media.","x-cc-api-group":"SEO"},"SEO_DESCRIPTION":{"type":"string","description":"The description that appears when you post this page on social media.","x-cc-api-group":"SEO"},"OPEN_GRAPH_IMAGE_URL":{"type":"string","description":"The image that appears when you share the asset on social media, if not available we use the logo_url.","x-cc-api-group":"SEO"},"ASSET_DESCRIPTION_EXTENDED_SEO":{"type":"string","description":"The long form description in markdown for this asset that has been reviewed or hand crafted by a person with SEO expertise to have the higest impact in rankings.","x-cc-api-group":"SEO"},"CODE_REPOSITORIES":{"type":"array","description":"The open source code repositories where the code for this blockchain / token is.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository.","example":"https://github.com/user/repo"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"OPEN_ISSUES":{"type":"integer","description":"The number of open issues in the code repository. An open issue is a reported problem, suggestion, or task related to a repository that has not been resolved or closed yet, providing a platform for users to track and discuss the ongoing development and improvements of a project."},"CLOSED_ISSUES":{"type":"integer","description":"The number of closed issues in the code repository. A closed issue is a reported problem, suggestion, or task related to a repository that have been resolved or deemed no longer relevant, providing a record of past challenges and solutions within the project development."},"OPEN_PULL_REQUESTS":{"type":"integer","description":"The number of open pull requests in the code repository. An open pull request on GitHub is a proposed change to a repository's codebase that is open for review and discussion, offering contributors an opportunity to improve the project and maintainers to accept, reject, or request changes before integrating the proposed modifications."},"CLOSED_PULL_REQUESTS":{"type":"integer","description":"The number of closed pull requests in the code repository. A closed pull request is a proposed change to a repository's codebase that has been either accepted and merged into the codebase, rejected by the maintainers, or withdrawn by the submitter, providing a record of changes that were suggested and their outcomes in the project's development history."},"CONTRIBUTORS":{"type":"integer","description":"The number of contributors in the code repository. A contributor is a users who has contributed to a project by making changes or improvements to the project's codebase, having their changes accepted and merged, and is acknowledged for their contributions in the project's development history."},"FORKS":{"type":"integer","description":"The number of forks of this code repository. A fork in GitHub is a feature that allows users to create a personal copy of another repository, enabling them to modify, experiment with, or contribute to the project without affecting the original work."},"STARS":{"type":"integer","description":"The number of stars in the code repository. A star is when a GitHub user bookmarks or wants to show appreciation for a particular repository, much like a \"like\" or \"favorite\" function on other social media platforms."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the code repository. A subscriber is a user who has chosen to receive notifications for updates or changes made to a specific repository, allowing them to closely follow the development and discussions of a project."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp we last tried to get data for this code repository."},"CREATED_AT":{"type":"number","description":"The timestamp the code repository was created."},"UPDATED_AT":{"type":"number","description":"The timestamp of the last changes that occured in the code repository."},"LAST_PUSH_TS":{"type":"number","description":"The timestamp of the last commit to the code repository."},"CODE_SIZE_IN_BYTES":{"type":"integer","description":"The total size of this code repository in bytes."},"IS_FORK":{"type":"boolean","description":"Is this repository a fork of another code repository."},"LANGUAGE":{"type":"string","description":"The primary programming language of the code repository."},"FORKED_ASSET_DATA":{"type":"object","description":"The asset this repository is forked from","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset","example":1},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"BTC"},"CODE_REPOSITORY_URL":{"type":"string","description":"The URL of the asset's code repository.","example":"https://github.com/bitcoin/bitcoin"}}},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving code repository data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository endpoint that was called."},"TYPE":{"type":"string","description":"The type of the code repository endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the code repository endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the code repository endpoint."},"EXTERNAL_CACHE_KEY":{"type":"string","description":"The External Cache key (E-Tag) is a header that provides a mechanism for web caches and clients to validate cached resources, this is used for determining if a request has change since it's last call"}}}}}}},"SUBREDDITS":{"type":"array","description":"The link for subreddits plus data we collect from them.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit.","example":"https://www.reddit.com/r/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the subreddit."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of currently active users in the subreddit."},"AVERAGE_POSTS_PER_DAY":{"type":"number","description":"The computed daily average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average daily post count."},"AVERAGE_POSTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of posts within a specific subreddit. This figure is determined by examining the most recent 100 posts within the subreddit and utilizing their frequency to extrapolate an average hourly post count."},"AVERAGE_COMMENTS_PER_DAY":{"type":"number","description":"The computed daily average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average daily comment count."},"AVERAGE_COMMENTS_PER_HOUR":{"type":"number","description":"The computed hourly average number of comments within a specific subreddit. This figure is determined by examining the most recent 100 comments within the subreddit and utilizing their frequency to extrapolate an average hourly comment count."},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the subreddit."},"COMMUNITY_CREATED_AT":{"type":"number","description":"The timestamp when the subreddit community was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the subreddit."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving subreddit data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the subreddit endpoint that was called."},"TYPE":{"type":"string","description":"The type of subreddit endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the subreddit endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the subreddit endpoint."}}}}}}},"TWITTER_ACCOUNTS":{"type":"array","description":"The link for the official X (Formerly Twitter) account plus data we collect from them.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the X account.","example":"https://x.com/user"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the X account."},"USERNAME":{"type":"string","description":"The username of the X account."},"VERIFIED":{"type":"boolean","description":"The verification status of the X account."},"VERIFIED_TYPE":{"type":"string","description":"The verification type of the X account."},"FOLLOWING":{"type":"integer","description":"The number of accounts followed by this X account."},"FOLLOWERS":{"type":"integer","description":"The number of followers of this X account."},"FAVOURITES":{"type":"integer","description":"The total number of tweets favorited by this X account."},"LISTS":{"type":"integer","description":"The total number of lists this X account is a member of."},"STATUSES":{"type":"integer","description":"The total number of tweets and retweets made by this X account."},"ACCOUNT_CREATED_AT":{"type":"number","description":"The timestamp of when the X account was created."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the X account."}}}},"DISCORD_SERVERS":{"type":"array","description":"The link for Discord servers plus data we collect from them.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server.","example":"https://discord.com/invite/abc"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Discord server."},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Discord server."},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of online users in this Discord server."},"PREMIUM_SUBSCRIBERS":{"type":"integer","description":"The number of premium subscribers in this Discord server."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Discord server."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Discord server data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server endpoint that was called."},"TYPE":{"type":"string","description":"The type of Discord server endpoint that was called."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Discord server endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Discord server endpoint."}}}}}}},"TELEGRAM_GROUPS":{"type":"array","description":"The link for the official Telegram pages plus data we collect from them.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group.","example":"https://t.me/s/channelName"},"MAKE_3RD_PARTY_REQUEST":{"type":"boolean","description":"This is used by our content editors to disable endpoints when needed."},"NAME":{"type":"string","description":"The name of the Telegram group."},"USERNAME":{"type":"string","description":"The username of the Telegram group."},"MEMBERS":{"type":"integer","description":"The total number of members in the Telegram group."},"LAST_UPDATED_TS":{"type":"number","description":"The timestamp of the last update to the Telegram group."},"ENDPOINTS_USED":{"type":"array","description":"List of endpoints used for retrieving Telegram group data.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group for this endpoint call."},"TYPE":{"type":"string","description":"The type of endpoint used for retrieving Telegram group data."},"LAST_CALL":{"type":"number","description":"The timestamp of the last call made to the Telegram group endpoint."},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp of the last successful call made to the Telegram group endpoint."}}}}}}},"ASSOCIATED_CONTACT_DETAILS":{"type":"array","description":"Associated contact addresses for the team members, employees or affiliated contacts.","x-cc-api-group":"CONTACT","items":{"type":"object","properties":{"CONTACT_TYPE":{"type":"string"},"CONTACT_MEDIUM":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"OTHER_SOCIAL_NETWORKS":{"type":"array","description":"Any other asset related social networks.","x-cc-api-group":"SOCIAL","items":{"type":"object","properties":{"NAME":{"type":"string"},"URL":{"type":"string","description":"The URL of the social network.","example":"https://example.com"}}}},"HELD_TOKEN_SALE":{"type":"boolean","description":"Use this flag to get access to all the token sale fields.","x-cc-api-group":"TOKEN_SALE"},"TOKEN_SALES":{"type":"array","description":"An array of token sales.","x-cc-api-group":"TOKEN_SALE","items":{"type":"object","properties":{"TOKEN_SALE_TYPE":{"type":"string","description":"The type of token sale."},"TOKEN_SALE_DATE_START":{"type":"integer","description":"The date and time the ICO will start at. Time is in GMT."},"TOKEN_SALE_DATE_END":{"type":"integer","description":"The date the token sale will end at. Time is in GMT."},"TOKEN_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the token sale."},"TOKEN_SALE_TEAM_MEMBERS":{"type":"array","description":"The team members that are working on the project","items":{"type":"object","properties":{"TYPE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"TOKEN_SALE_WEBSITE_URL":{"type":"string","description":"The link of the ICO page."},"TOKEN_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available to investors for the token sale. This does not include the reserve. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_RESERVE_SUPPLY":{"type":"number","description":"Total number of tokens kept in reserve or allocated to team mebers. This does not include the tokens sold to investors. It is just the sum of all the TOKEN_SALE_RESERVE_SPLIT."},"TOKEN_SALE_SUPPLY_ADDED":{"type":"number","description":"Total number of tokens added in this token sale. This is equal to TOKEN_SALE_SUPPLY + TOKEN_SALE_RESERVE_SUPPLY."},"TOKEN_SALE_PRE_SALE_SUPPLY":{"type":"number","description":"Total number of tokens available before this this token sale. This is the sum of all the previous sales, on the first token sale this will be 0. TOKEN_SALE_POST_SALE_SUPPLY  = TOKEN_SALE_PRE_SALE_SUPPLY + TOKEN_SALE_SUPPLY_ADDED."},"TOKEN_SUPPLY_POST_SALE":{"type":"string","description":"The numbers of tokens post Sale. This should be all the locked tokens, the team tokens and all other tokens not included in the sale. It should be equal to TOKEN_SALE_RESERVE + TOKEN_SALE_SUPPLY."},"TOKEN_SALE_PAYMENT_METHOD_TYPE":{"type":"string","description":"The payment method for the token sale. The currencies that are accepted in this token sale."},"TOKEN_SALE_START_PRICE":{"type":"number","description":"The start price of the token sale."},"TOKEN_SALE_START_PRICE_CURRENCY":{"type":"string","description":"The currency of the start price."},"TOKEN_SALE_FUNDING_CAP":{"type":"number","description":"Hard cap refers to the maximum number of tokens that can be sold, is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_CAP_CURRENCY":{"type":"string","description":"This is the maximum amount of funds the development team is willing to collect to move forward with project."},"TOKEN_SALE_FUNDING_TARGET":{"type":"number","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the token sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"TOKEN_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the token sale (tokens sold).","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this token sale."},"TOKEN_SALE_INVESTORS_SPLIT":{"type":"array","description":"The way the tokens that are sold are split","items":{"type":"object","properties":{"CATEGORY":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_RESERVE_SPLIT":{"type":"array","description":"The way the tokens that are not sold are split. The token sale TOKEN_SALE_RESERVE total should be the sum of all the TOKEN_SALE_RESERVE_SPLITs. Sum of TOKEN_SALE_RESERVE_SPLIT and TOKEN_SALE_SUPPLY  should be equal to TOKEN_SUPPLY_POST_SALE.","items":{"type":"object","properties":{"CATEGORY":{"type":"string","description":"The type of reserve split"},"TOTAL_TOKENS":{"type":"number","description":"Total tokens set aside"},"ADDRESS":{"type":"string","description":"The address where these tokens as kept"},"DESCRIPTION":{"type":"string","description":"A description for how they intend to use the funds."}}}},"TOKEN_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the token sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_TOKENS":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"TOKEN_SALE_LAUNCHPADS":{"type":"array","description":"Launchpads/Exchanges in which the offering has/is taking place","items":{"type":"object","properties":{"NAME":{"type":"string","description":"Launchpad/Exchange in which the offering is taking place"}}}},"TOKEN_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the token sales is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the token sales is based or has a subsidiary."}}}},"TOKEN_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"TOKEN_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the ICO on the structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the ICO on the structure."}}}},"TOKEN_SALE_LEGAL_FORMS":{"type":"array","description":"The type of company or subsidiaries.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The type of company or subsidiaries."}}}},"TOKEN_SALE_SECURITY_AUDIT_COMPANIES":{"type":"array","description":"The companies that did the security audit on the smart contract.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"One of the companies that did the security audit on the smart contract."},"AUDIT_DOCUMENT":{"type":"string"}}}}}}},"HELD_EQUITY_SALE":{"type":"boolean","description":"Use this flag to get access to all the equity sale fields.","x-cc-api-group":"EQUITY_SALE"},"EQUITY_SALES":{"type":"array","description":"An array of equity sales. An equity sale refers to shares in the company behind a token, a token sales refers to selling tokens that don't give you rights in the company","x-cc-api-group":"EQUITY_SALE","items":{"type":"object","properties":{"EQUITY_SALE_STAGE":{"type":"string","description":"The stage of equity sale."},"EQUITY_SALE_ENTITY_NAME":{"type":"string","description":"The leagl name of the company that the equity will be related to."},"EQUITY_SALE_ANNOUNCEMENT_DATE":{"type":"integer","description":"The date and time the equity sale was announced. Time is in UTC."},"EQUITY_SALE_CLOSE_DATE":{"type":"integer","description":"The date the equity sale will/has ended at. Time is in UTC."},"EQUITY_SALE_DESCRIPTION":{"type":"string","description":"A brief description about the basic aspects of the equity sale."},"EQUITY_SALE_TEAM_MEMBERS":{"type":"array","description":"The CxO members that are working at the company.","items":{"type":"object","properties":{"JOB_TITLE":{"type":"string"},"FULL_NAME":{"type":"string"},"ADDRESS":{"type":"string","description":"The email / linkedin addres / twitter / other social media address"},"COMMENTS":{"type":"string"}}}},"EQUITY_SALE_ENTITY_URL":{"type":"string","description":"The link of the equity sale page."},"EQUITY_SALE_SUPPLY":{"type":"number","description":"Total number of shares available for the equity sale."},"TOTAL_EQUITY_SUPPLY_POST_RAISE":{"type":"number","description":"Total number of shares the company has issued including the shares in this equity sale."},"EQUITY_SALE_FUNDING_TARGET":{"type":"number","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDING_TARGET_CURRENCY":{"type":"string","description":"If the equity sale is unable to raise this amount, it may be cancelled and the collected funds returned to the participants."},"EQUITY_SALE_FUNDS_RAISED":{"type":"array","description":"The total funds that the project raised in the equity sale.","items":{"type":"object","properties":{"CURRENCY":{"type":"string","description":"The currency for funds raised."},"TOTAL_VALUE":{"type":"number"},"TOTAL_EQUITY":{"type":"number"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_FUNDS_RAISED_USD":{"type":"number","description":"Total $ raised in this equity sale."},"EQUITY_SALE_NOTABLE_INVESTORS":{"type":"array","description":"The notable investors in the equity sale","items":{"type":"object","properties":{"NAME":{"type":"string"},"TOTAL_EQUITY_RECEIVED":{"type":"number"},"INVESTMENT_VALUE":{"type":"number"},"INVESTMENT_CURRENCY":{"type":"string","description":"The currency for funds raised."},"IS_LEAD_INVESTOR":{"type":"boolean"},"DESCRIPTION":{"type":"string"}}}},"EQUITY_SALE_JURISDICTIONS":{"type":"array","description":"The countries where the company doing the equity sale is based or where its subsidiaries are based.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The country where the company doing the equity sales is based or has a subsidiary."}}}},"EQUITY_SALE_REGULATORY_FRAMEWORKS":{"type":"array","description":"The name of the regulatory frameworks. Example: SEC, FCA, etc.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The regulatory framework."}}}},"EQUITY_SALE_LEGAL_ADVISERS":{"type":"array","description":"The lawyers that are advising the company on the equity sale structure.","items":{"type":"object","properties":{"NAME":{"type":"string","description":"The lawyers that are advising the company on the equity sale structure."}}}}}}},"ROOT_ASSET_ID":{"type":"integer","description":"Identifies the root asset in a chain of derived or related assets, essential for tracing asset lineage. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":2,"x-cc-api-group":"ID"},"ROOT_ASSET_SYMBOL":{"type":"string","description":"The symbol of the root asset, facilitating recognition and correlation within asset hierarchies. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":"ETH","x-cc-api-group":"ID"},"ROOT_ASSET_TYPE":{"type":"string","description":"Specifies the fundamental category of the root asset, crucial for understanding the base or origin of an asset's classification. Null if the asset does not have a parent. For example, the fiat USD would be the root asset for tokens CUSDC or USDCE, and in this case, the ROOT_ASSET_TYPE would be fiat.","example":"BLOCKCHAIN","x-cc-api-group":"ID"},"PRICE_USD":{"type":"number","description":"Denotes the current value / price of the asset in USD. This value is used to populate toplists and is calculated based on real-time market data.","x-cc-api-group":"PRICE"},"PRICE_USD_SOURCE":{"type":"string","description":"Denotes the source we used for the USD value / price.","x-cc-api-group":"PRICE"},"PRICE_USD_LAST_UPDATE_TS":{"type":"number","description":"The Unix timestamp of the last update to the USD value / price of the asset.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_ASSET":{"type":"object","description":"Denotes the convesion asset ID, SYMBOL and ASSET_TYPE.","x-cc-api-group":"PRICE","properties":{"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH"},"ASSET_TYPE":{"type":"string","description":"The type of the asset (FIAT, BLOCKCHAIN, TOKEN, etc.)","example":"BLOCKCHAIN"}}},"PRICE_CONVERSION_RATE":{"type":"number","description":"Denotes the current value / price of USD in the requested quote asset.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_VALUE":{"type":"number","description":"Denotes the current value / price of the asset in the requested quote currency.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_SOURCE":{"type":"string","description":"Denotes the source we used for the conversion asset value / price.","x-cc-api-group":"PRICE"},"PRICE_CONVERSION_LAST_UPDATE_TS":{"type":"number","description":"The Unix timestamp of the last update to the conversion asset value / price.","format":"unix_timestamp","x-cc-api-group":"PRICE"},"CIRCULATING_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This is used to rank assets in toplists based on their circulating market capitalization.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_USD":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This figure gives an overview of the total value of all issued tokens for a given asset.","x-cc-api-group":"MKT_CAP"},"CIRCULATING_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's circulating supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the CIRCULATING_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"TOTAL_MKT_CAP_CONVERSION":{"type":"number","description":"Calculated as the product of the asset's total supply and its current price quoted in conversion asset (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). We calculate this field by multiplying the TOTAL_MKT_CAP_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"MKT_CAP"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 24 hours volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 23 hours ago and now. We calculate this field by multiplying the SPOT_MOVING_24_HOUR_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 24 hours ago and the latest USD price. This is the same as the SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 7 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 6 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_7_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 7 days ago and the latest USD price. This is the same as the SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on spot markets that we consider top tier, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset on top tier spot markets.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross instruments that are quoted in USD on all the intergarted spot markets, quoted in USD. Provides insights into the USD liquidity and trading activity of the asset.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in USD. This is the sum of all the trade volumes on all the spot top tier markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. These markets meet specific quality criteria, offering a more curated view of trading activity.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets, quoted in USD. This is the sum of all the trade volumes on all the spot markets, every trade volume is converted to USD using the most accurate conversion price at the time of the trade. Useful for understanding demand and trading interest.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on spot markets that we consider top tier, quoted in conversion asset. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_CONVERSION":{"type":"number","description":"Aggregated 30 days volume of the asset traded accross all instruments on all the integrated spot markets. We calculate this field by multiplying the SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD and the PRICE_CONVERSION_VALUE.","x-cc-api-group":"VOLUME"},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"number","description":"The difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_CONVERSION":{"type":"number","description":"The approximate difference between the value of the asset quoted conversion currency 29 days ago and current day. We calculate this field by multiplying the SPOT_MOVING_30_DAY_CHANGE_USD and the PRICE_CONVERSION_VALUE. This figure does not take into account the volatility of the conversion asset quoted in USD.","x-cc-api-group":"CHANGE"},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_CONVERSION":{"type":"number","description":"The percentage difference between the value of the asset quoted in USD 30 days ago and the latest USD price. This is the same as the SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD just adding it here for easier access.","x-cc-api-group":"CHANGE"},"TOPLIST_BASE_RANK":{"type":"object","description":"Indicates the asset’s position in our global asset ranking. There are multiple ranks, each is determined by at least one factor, such as asset launch date, market cap, trading volume, etc..","x-cc-api-group":"TOPLIST_RANK","properties":{"CREATED_ON":{"type":"integer","description":"Rank based on CREATED_ON sorted ASC from earliest created to most recent one."},"LAUNCH_DATE":{"type":"integer","description":"Rank based on LAUNCH_DATE sorted ASC from earliest launched to most recently launched one."},"PRICE_USD":{"type":"integer","description":"Rank based on PRICE_USD sorted DESC from most expensive asset to cheapest one."},"CIRCULATING_MKT_CAP_USD":{"type":"integer","description":"Rank based on CIRCULATING_MKT_CAP_USD sorted DESC from highest circulating market cap to lowest."},"TOTAL_MKT_CAP_USD":{"type":"integer","description":"Rank based on TOTAL_MKT_CAP_USD sorted DESC from highest total market cap to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_24_HOUR_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_7_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_DIRECT_USD sorted DESC from highest quote volume accross top tier markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_DIRECT_USD sorted DESC from highest volume accross all markets that trade directly to USD to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_TOP_TIER_USD sorted DESC from highest quote volume accross top tier markets to lowest."},"SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_QUOTE_VOLUME_USD sorted DESC from highest quote volume accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_USD sorted DESC from highest change accross all markets to lowest."},"SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD":{"type":"integer","description":"Rank based on SPOT_MOVING_30_DAY_CHANGE_PERCENTAGE_USD sorted DESC from highest percentage change accross all markets to lowest."}}},"TOTAL_ENDPOINTS_OK":{"type":"integer","description":"Total endpoints we have successfully called in the last 24 hours.","x-cc-api-group":"INTERNAL"},"TOTAL_ENDPOINTS_WITH_ISSUES":{"type":"integer","description":"Total endpoints that have not had a successfull call in the last 24 hours.","x-cc-api-group":"INTERNAL"}}}}}},"ASSET_TOPLIST_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ASSET_TOPLIST"},"Err":{"type":"object","properties":{}}}},"ASSET_SEARCH_RESULT":{"type":"object","x-visible-in-ai":true,"properties":{"LIST":{"type":"array","description":"The list of search result assets dynamically ranked based on the presence and type of search_string provided, prioritizing exact ID matches, then exact and partial symbol matches with consideration for market cap, followed by name matches and broad matches, finally defaulting to top assets by market cap in the absence of a query.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Identifies the category or type of data represented, crucial for understanding the context of the asset. We use it to define what fields follow after this.","example":"147"},"ID":{"type":"integer","description":"Unique numerical identifier assigned to each asset, serving as a primary key for database reference.","example":2},"SYMBOL":{"type":"string","description":"The abbreviated representation or ticker symbol of the asset, commonly used in markets and trading.","example":"ETH"},"URI":{"type":"string","description":"Web address or endpoint where detailed information about the asset can be found.","example":"bitcoin"},"IS_PUBLIC":{"type":"boolean","description":"Boolean indicator specifying whether the asset is visible and accessible to the public in the API."},"NAME":{"type":"string","description":"Full name of the asset, providing a clear and descriptive identification beyond its symbol.","example":"Bitcoin"},"LOGO_URL":{"type":"string","description":"URL to the official logo image for the asset, used for visual identification in interfaces.","example":"https://resources.cryptocompare.com/asset-management/1/1659708726266.png"},"ASSET_TYPE":{"type":"string","description":"Describes the category of the asset (e.g., BLOCKCHAIN, TOKEN, FIAT, etc.), aiding in classification and filtering.","example":"BLOCKCHAIN"},"HAS_SMART_CONTRACT_CAPABILITIES":{"type":"boolean","description":"Indicates whether the asset supports or is capable of executing smart contracts, important for understanding functional capabilities.","example":"1"},"MARKET_NAME":{"type":"string","description":"For BLOCKCHAIN and TOKEN assets it is the CoinDesk data board market reference rate - cadli. For INDEX assets it is the specific market name where the index is traded or published.","example":"cadli"},"CIRCULATING_MKT_CAP_USD":{"type":"number","description":"Represents the current market capitalization based on circulating supply and price, important for economic and financial analysis. Calculated as the product of the asset's circulating supply and its current price in USD (we sometimes apply a MKT_CAP_PENALTY depending on liquidity conditions). This is used to rank assets in the search results based on their circulating market capitalization.","example":867375515666.5},"ID_PARENT_ASSET":{"type":"integer","description":"The ID of any parent asset, linking related assets and enabling hierarchical data structuring. Null if the asset does not have a parent. An example of parent asset would be the fiat USD for the stablecoin USDC or USDT.","example":1},"PARENT_ASSET_SYMBOL":{"type":"string","description":"Symbol of the parent asset, if applicable, helping to identify and relate assets within a family or series. Null if the asset does not have a parent. An example of parent asset would be the fiat USD for the stablecoin USDC or USDT.","example":"ETH"},"ROOT_ASSET_ID":{"type":"integer","description":"Identifies the root asset in a chain of derived or related assets, essential for tracing asset lineage. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":2,"x-cc-api-group":"BASIC"},"ROOT_ASSET_SYMBOL":{"type":"string","description":"The symbol of the root asset, facilitating recognition and correlation within asset hierarchies. Null if the asset does not have a parent. For example, the fiat USD (id: 5) would be the root asset for the tokens CUSDC (id: 1623) or USDCE (id: 1728).","example":"ETH"},"ROOT_ASSET_TYPE":{"type":"string","description":"Specifies the fundamental category of the root asset, crucial for understanding the base or origin of an asset's classification. Null if the asset does not have a parent. For example, the fiat USD would be the root asset for tokens CUSDC or USDCE, and in this case, the ROOT_ASSET_TYPE would be fiat.","example":"BLOCKCHAIN"},"CREATED_ON":{"type":"number","description":"The Unix timestamp of the asset entry creation in our system.","example":1681990528,"format":"unix_timestamp"}}}}}},"ASSET_SEARCH_RESULT_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ASSET_SEARCH_RESULT"},"Err":{"type":"object","properties":{}}}},"ASSET_SUMMARY_LIST":{"type":"object","x-visible-in-ai":false,"properties":{"STATS":{"type":"object","description":"The statistics of the current page.","properties":{"PAGE":{"type":"integer","description":"The current page number.","example":1},"PAGE_SIZE":{"type":"integer","description":"The current number of items on this page.","example":10},"TOTAL_ASSETS":{"type":"integer","description":"The total number of assets available.","example":2000}}},"LIST":{"type":"array","description":"The list of summary asset data.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Specifies the type or category of the message or data being handled. This is a unique number / id for each message type.","example":"162","x-cc-api-group":"ID"},"ID":{"type":"integer","description":"The unique identifier for the asset entry","example":2,"x-cc-api-group":"ID"},"SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"URI":{"type":"string","description":"The uri path that this asset will be found on / url-slug","example":"eth","x-cc-api-group":"ID"},"ASSET_TYPE":{"type":"string","description":"The asset class/type","x-cc-api-group":"ID"},"NAME":{"type":"string","description":"The full name of the asset, e.g. Bitcoin.","x-cc-api-group":"BASIC"},"LOGO_URL":{"type":"string","description":"The image that appears when you see this asset.","x-cc-api-group":"BASIC"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the asset is indicated as (yyyy-mm-dd). However, if the asset was initially established as a token before being integrated into a blockchain, the launch date is reset to the creation of the first block when the blockchain is launched for the token.","x-cc-api-group":"BASIC"}}}}}},"ASSET_SUMMARY_LIST_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/ASSET_SUMMARY_LIST"},"Err":{"type":"object","description":"This object provides detailed information about an error encountered while processing the request. It includes an error code, a message explaining the error, and additional context about the parameters or values that caused the issue. This helps clients identify and resolve issues with their requests.","properties":{"type":{"type":"integer","description":"A public facing error type. If you want to treat a specific error use the type.","format":"int32","example":1},"message":{"type":"string","description":"A message describing the error","example":"Not found: market parameter. Value test_market_does_not_exist not integrated yet. We list all markets in lowercase and transform the parameter sent, make sure you check the https://data-api.cryptocompare.com/spot/v1/markets endpoint for a list of all the supported TRADE_SPOT markets"},"other_info":{"type":"object","properties":{"param":{"type":"string","description":"The parameter that is responsible for the error","example":"market"},"values":{"type":"array","description":"The values responsible for the error","example":["test_market_does_not_exist"],"items":{"type":"string"}}}}}}}},"ASSET_EVENTS":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"146"},"ID":{"type":"integer","description":"The unique identifier for the asset event entry","example":105},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset the event entry is associated to.","example":1},"EVENT_TYPE":{"type":"string","description":"The event type, one of the following: SECURITY-INCIDENT, HARD-FORK, SOFT-FORK, TICKER-CHANGE, MIGRATION, SUPPLY-BURN, SUPPLY-LOCK, SPLIT, REVERSE-SPLIT, TOKEN-LISTING, TOKEN-DELISTING, NETWORK-CONTROL-CHANGE, OTHER","example":"SECURITY-INCIDENT"},"ANNOUNCED_ON":{"type":"integer","description":"The unix timestamp when we were notified of the event","format":"unix_timestamp","example":1680998400},"IMPLEMENTATION_START_DATE":{"type":"integer","description":"The unix timestamp when the event was triggered","format":"unix_timestamp","example":1680998400},"IMPLEMENTATION_END_DATE":{"type":"integer","description":"The unix timestamp when the event finished","format":"unix_timestamp","example":1680998400},"NAME":{"type":"string","description":"Name text","example":"GDAC Exchange Hack"},"DESCRIPTION":{"type":"string","description":"Description text","example":"South Korean crypto exchange GDAC suffered a hack on April 9, 2023, in which 61 Bitcoins and other crypto assets were stolen, amounting to a total loss of around USD 13 million. This represented about 13% of GDAC's total asset holdings. The hack occurred on the GDAC hot wallet that stored various crypto assets, including Bitcoin, Ethereum, WEMIX tokens, and Tether."},"METADATA":{"type":"object","description":"Any other event specific fields","properties":{"CONTENTIOUS_HARD_FORK":{"type":"boolean"},"SPIN_OFF_TOKEN":{"type":"string"},"MERGER":{"type":"boolean"},"NEW_TICKER":{"type":"string"},"OLD_TICKERS":{"type":"string"},"CONTRACT_MIGRATION":{"type":"boolean"},"NEW_CONTRACT_ADDRESS":{"type":"string"},"CHAIN_MIGRATION":{"type":"boolean"},"DESTINATION_CHAIN":{"type":"string"},"TRANSACTION_ID":{"type":"string"},"SUPPLY_BURNT":{"type":"number"},"ACCOUNT_ADDRESS":{"type":"string"},"SUPPLY_LOCK":{"type":"number"},"SPLIT_FACTOR":{"type":"number","description":"Represents the multiplier in a regular split. For instance, in a 2-for-1 split, the split factor would be 2."},"SPLIT_RATIO":{"type":"number","description":"Represents the divisor in a reverse split. For instance, in a 1-for-5 reverse split, the split ratio would be 5."},"EXCHANGE_NAME":{"type":"string","description":"The name of the exchange where the token is listed."},"PAIRS":{"type":"string","description":"The trading pairs of the token listed on the exchange (e.g., [\"BTC/USD\", \"ETH/USD\"])."}},"example":"{}"},"COMMENT":{"type":"string","description":"The internal comments added to this event by our team","example":""},"CREATED_ON":{"type":"integer","description":"Asset Event internal creation unix ts in our system","format":"unix_timestamp","example":1683731669},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the asset event","example":0},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the asset event at the time of the asset event creation (the user might have changed their username but not their user id)","example":""},"UPDATED_ON":{"type":"integer","description":"Asset Event internal last updated unix ts in our system","format":"unix_timestamp","example":null},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the asset event","example":null},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the asset event at the time of the asset event update (the user might have changed their username but not their user id)","example":null}}},"ASSET_EVENTS_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_EVENTS"}},"Err":{"type":"object","properties":{}}}},"ASSET_CODE_REPOSITORIES_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"151","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":1,"x-cc-api-group":"ID"},"ASSET_SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"BTC","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","example":1686528000,"x-cc-api-group":"ID"},"TOTAL_CONTRIBUTORS":{"type":"integer","description":"The total number of contributors across all code repositories associated with this asset. A contributor is a users who has contributed to a project by making changes or improvements to the project's codebase, having their changes accepted and merged, and is acknowledged for their contributions in the project's development history.","example":350,"x-cc-api-group":"GENERAL"},"TOTAL_FORKS":{"type":"integer","description":"The total number of forks across all code repositories associated with this asset. A fork in GitHub is a feature that allows users to create a personal copy of another repository, enabling them to modify, experiment with, or contribute to the project without affecting the original work.","example":34411,"x-cc-api-group":"GENERAL"},"TOTAL_STARS":{"type":"integer","description":"The total number of stars received across all code repositories associated with this asset. A star is when a GitHub user bookmarks or wants to show appreciation for a particular repository, much like a \"like\" or \"favorite\" function on other social media platforms.","example":69910,"x-cc-api-group":"GENERAL"},"TOTAL_SUBSCRIBERS":{"type":"integer","description":"The total number of subscribers across all code repositories associated with this asset. A subscriber is a user who has chosen to receive notifications for updates or changes made to a specific repository, allowing them to closely follow the development and discussions of a project.","example":3946,"x-cc-api-group":"GENERAL"},"TOTAL_OPEN_ISSUES":{"type":"integer","description":"The total number of open issues across all code repositories associated with this asset. An open issue is a reported problem, suggestion, or task related to a repository that has not been resolved or closed yet, providing a platform for users to track and discuss the ongoing development and improvements of a project.","example":636,"x-cc-api-group":"ACTIVITY"},"TOTAL_CLOSED_ISSUES":{"type":"integer","description":"The total number of closed issues across all code repositories associated with this asset. A closed issue is a reported problem, suggestion, or task related to a repository that have been resolved or deemed no longer relevant, providing a record of past challenges and solutions within the project development.","example":26045,"x-cc-api-group":"ACTIVITY"},"TOTAL_OPEN_PULL_REQUESTS":{"type":"integer","description":"The total number of open pull requests across all code repositories associated with this asset.An open pull request on GitHub is a proposed change to a repository's codebase that is open for review and discussion, offering contributors an opportunity to improve the project and maintainers to accept, reject, or request changes before integrating the proposed modifications.","example":292,"x-cc-api-group":"ACTIVITY"},"TOTAL_CLOSED_PULL_REQUESTS":{"type":"integer","description":"The total number of closed pull requests across all code repositories associated with this asset. A closed pull request is a proposed change to a repository's codebase that has been either accepted and merged into the codebase, rejected by the maintainers, or withdrawn by the submitter, providing a record of changes that were suggested and their outcomes in the project's development history.","example":18913,"x-cc-api-group":"ACTIVITY"},"CODE_REPOSITORIES":{"type":"array","description":"An array with all the data for each code repository used to calculate the total stats.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the code repository used to retrieve social metrics.","example":"https://github.com/bitcoin/bitcoin"},"CONTRIBUTORS":{"type":"integer","description":"The number of contributors to the code repository.","example":350},"FORKS":{"type":"integer","description":"The number of forks of the code repository.","example":34411},"STARS":{"type":"integer","description":"The number of stars received by the code repository.","example":69910},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the code repository.","example":3946},"OPEN_ISSUES":{"type":"integer","description":"The number of open issues in the code repository.","example":636},"CLOSED_ISSUES":{"type":"integer","description":"The number of closed issues in the code repository.","example":26045},"OPEN_PULL_REQUESTS":{"type":"integer","description":"The number of open pull requests in the code repository.","example":292},"CLOSED_PULL_REQUESTS":{"type":"integer","description":"The number of closed pull requests in the code repository.","example":18913}}},"x-cc-api-group":"SOURCE"}}},"ASSET_CODE_REPOSITORIES_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_CODE_REPOSITORIES_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"ASSET_DISCORD_SERVERS_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"153","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":2,"x-cc-api-group":"ID"},"ASSET_SYMBOL":{"type":"string","description":"Symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","example":1686528000,"x-cc-api-group":"ID"},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Discord server.","example":38336,"x-cc-api-group":"GENERAL"},"TOTAL_CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of online users in this Discord server.","example":3024,"x-cc-api-group":"ACTIVITY"},"TOTAL_PREMIUM_SUBSCRIBERS":{"type":"integer","description":"The number of premium subscribers in this Discord server.","example":14,"x-cc-api-group":"ACTIVITY"},"DISCORD_SERVERS":{"type":"array","description":"An array with all the data for each Discord server used to calculate the total stats.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Discord server used to retrieve social metrics.","example":"https://discord.com/invite/CetY6Y4"},"NAME":{"type":"string","description":"The name of the Discord server.","example":"Ethereum.org"},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Discord server.","example":38336},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of online users in this Discord server.","example":3024},"PREMIUM_SUBSCRIBERS":{"type":"integer","description":"The number of premium subscribers in this Discord server.","example":14}}},"x-cc-api-group":"SOURCE"}}},"ASSET_DISCORD_SERVERS_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_DISCORD_SERVERS_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"ASSET_SUBREDDITS_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"155","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":1,"x-cc-api-group":"ID"},"ASSET_SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"BTC","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","example":1686528000,"x-cc-api-group":"ID"},"TOTAL_ACTIVE_USERS":{"type":"integer","description":"The number of currently active users in the subreddit.","example":9596,"x-cc-api-group":"ACTIVITY"},"TOTAL_AVERAGE_POSTS_PER_DAY":{"type":"number","description":"The average number of posts per day in the subreddit.","example":58.209999999999994,"x-cc-api-group":"ACTIVITY"},"TOTAL_AVERAGE_POSTS_PER_HOUR":{"type":"number","description":"The average number of posts per hour in the subreddit.","example":2.43,"x-cc-api-group":"ACTIVITY"},"TOTAL_AVERAGE_COMMENTS_PER_DAY":{"type":"number","description":"The average number of comments per day in the subreddit.","example":3099.2400000000002,"x-cc-api-group":"ACTIVITY"},"TOTAL_AVERAGE_COMMENTS_PER_HOUR":{"type":"number","description":"The average number of comments per hour in the subreddit.","example":129.13,"x-cc-api-group":"ACTIVITY"},"TOTAL_SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the subreddit.","example":5994305,"x-cc-api-group":"GENERAL"},"SUBREDDITS":{"type":"array","description":"An array with all the data for each Subreddit used to calculate the total stats.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Subreddit used to retrieve social metrics.","example":"https://www.reddit.com/r/Bitcoin"},"NAME":{"type":"string","description":"The name of the subreddit.","example":"Bitcoin"},"CURRENT_ACTIVE_USERS":{"type":"integer","description":"The number of currently active users in the subreddit.","example":9278},"AVERAGE_POSTS_PER_DAY":{"type":"number","description":"The average number of posts per day in the subreddit.","example":47.76},"AVERAGE_POSTS_PER_HOUR":{"type":"number","description":"The average number of posts per hour in the subreddit.","example":1.99},"AVERAGE_COMMENTS_PER_DAY":{"type":"number","description":"The average number of comments per day in the subreddit.","example":3019.92},"AVERAGE_COMMENTS_PER_HOUR":{"type":"number","description":"The average number of comments per hour in the subreddit.","example":125.83},"SUBSCRIBERS":{"type":"integer","description":"The number of subscribers to the subreddit.","example":4931412}}},"x-cc-api-group":"SOURCE"}}},"ASSET_SUBREDDITS_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_SUBREDDITS_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"ASSET_TELEGRAM_GROUPS_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"157","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":3,"x-cc-api-group":"ID"},"ASSET_SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"SOL","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","example":1686528000,"x-cc-api-group":"ID"},"TOTAL_MEMBERS":{"type":"integer","description":"The total number of users/members in this Telegram group.","example":56427,"x-cc-api-group":"GENERAL"},"TELEGRAM_GROUPS":{"type":"array","description":"An array with all the data for each Telegram group used to calculate the total stats.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the Telegram group used to retrieve social metrics.","example":"https://t.me/solana"},"NAME":{"type":"string","description":"The name of the Telegram group.","example":"Solana"},"USERNAME":{"type":"string","description":"The username of the Telegram group.","example":"solana"},"MEMBERS":{"type":"integer","description":"The total number of users/members in this Telegram group.","example":56427}}},"x-cc-api-group":"SOURCE"}}},"ASSET_TELEGRAM_GROUPS_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_TELEGRAM_GROUPS_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"ASSET_TWITTER_ACCOUNTS_HISTO_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the historical period update: HOUR for hour and DAY for day.","example":"DAY","x-cc-api-group":"ID"},"TYPE":{"type":"string","description":"The type of the message","example":"159","x-cc-api-group":"ID"},"ASSET_ID":{"type":"integer","description":"The unique identifier for the asset","example":2,"x-cc-api-group":"ID"},"ASSET_SYMBOL":{"type":"string","description":"Internal mapped symbol for a specific asset","example":"ETH","x-cc-api-group":"ID"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the histo period, for hour it would be start of the hour and for daily it is 00:00 GMT/UTC","example":1686528000,"x-cc-api-group":"ID"},"TOTAL_FOLLOWING":{"type":"integer","description":"The total number of accounts followed by this X account.","example":0,"x-cc-api-group":"GENERAL"},"TOTAL_FOLLOWERS":{"type":"integer","description":"The total number of followers of this X account.","example":3081673,"x-cc-api-group":"GENERAL"},"TOTAL_FAVOURITES":{"type":"integer","description":"The total number of tweets favorited by this X account.","example":2124,"x-cc-api-group":"GENERAL"},"TOTAL_LISTS":{"type":"integer","description":"The total number of lists this X account is a member of.","example":12914,"x-cc-api-group":"GENERAL"},"TOTAL_STATUSES":{"type":"integer","description":"The total number of tweets and retweets made by this X account.","example":3536,"x-cc-api-group":"ACTIVITY"},"TWITTER_ACCOUNTS":{"type":"array","description":"An array with all the data for each X account used to calculate the total stats.","items":{"type":"object","properties":{"URL":{"type":"string","description":"The URL of the X account used to retrieve social metrics.","example":"https://x.com/ethereum"},"NAME":{"type":"string","description":"The name of the X account.","example":"Ethereum Foundation"},"USERNAME":{"type":"string","description":"The username of the X account.","example":"ethereum"},"VERIFIED":{"type":"boolean","description":"The verification status of the X account.","example":true},"VERIFIED_TYPE":{"type":"string","description":"The verification type of the X account.","example":"blue"},"FOLLOWING":{"type":"integer","description":"The number of accounts followed by this X account.","example":0},"FOLLOWERS":{"type":"integer","description":"The number of followers of this X account.","example":3081673},"FAVOURITES":{"type":"integer","description":"The number of tweets favorited by this X account.","example":2124},"LISTS":{"type":"integer","description":"The number of lists this X account is a member of.","example":12914},"STATUSES":{"type":"integer","description":"The number of tweets and retweets made by this X account.","example":3536}}},"x-cc-api-group":"SOURCE"}}},"ASSET_TWITTER_ACCOUNTS_HISTO_DATA_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/ASSET_TWITTER_ACCOUNTS_HISTO_DATA"}},"Err":{"type":"object","properties":{}}}},"NEWS_ARTICLES":{"type":"object","x-visible-in-ai":true,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"121"},"ID":{"type":"integer","description":"The unique identifier for the article entry"},"GUID":{"type":"string","description":"The Global Unique Identifier (GUID) of the article. A GUID is a unique reference number used as an identifier in computer systems. The \"Article guid\" is unique for every article and serves as its distinct identifier."},"PUBLISHED_ON":{"type":"integer","description":"The unix timestamp when the article was first published. This information is useful for understanding the timeline of the content, sorting articles by date, or determining the recency of the information.","format":"unix_timestamp"},"PUBLISHED_ON_NS":{"type":"integer","description":"The nanosecond part of the PUBLISHED_ON field.","format":"unix_timestamp"},"IMAGE_URL":{"type":"string","description":"The URL, or web address, of the article's associated or featured image. This URL can be used to retrieve the image for display, providing a visual context for the article content. The URL points directly to the location where the image file is stored online."},"TITLE":{"type":"string","description":"The heading or title of a specific article. It's a text string that gives a concise description of the article's content."},"SUBTITLE":{"type":"string","description":"The subheading or subtitle of a specific article. It's a text string that gives additional context to the article's title."},"AUTHORS":{"type":"string","description":"The author or authors of a specific article."},"URL":{"type":"string","description":"The web address that directs to the specific content or article on a source website. It's a unique URL used for directly linking to the article or for fetching additional data from the article page."},"SOURCE_ID":{"type":"integer","description":"The unique identifier for the source of the article or content. The \"SOURCE_ID\" allows for easy tracking and categorization of articles based on their origin, facilitating analysis by source, or fetching additional content from the same source. ","example":41},"BODY":{"type":"string","description":"The main textual content of the article. It includes the substance of the article but it it generally very limited since sources want clients to visit their website. This is where the primary information of the article is found."},"KEYWORDS":{"type":"string","description":"A list of words or phrases that are relevant to the content of the article. These keywords are given by the source and serve as a summary of the main themes, topics, or subjects covered in the article."},"LANG":{"type":"string","description":"The article Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)","default":"EN","example":"EN"},"UPVOTES":{"type":"integer","description":"The number of upvotes this article has.","example":10},"DOWNVOTES":{"type":"integer","description":"The number of downvotes this article has.","example":3},"SCORE":{"type":"integer","description":"The score of this article.","example":7},"SENTIMENT":{"type":"string","description":"The sentiment polarity of this article. We compute this using ChatGPT.","default":"","example":"POSITIVE"},"STATUS":{"type":"string","description":"The status for the Article. Allowed values: ACTIVE, DELETED","default":"ACTIVE","example":"ACTIVE"},"CREATED_ON":{"type":"integer","description":"Article internal creation unix ts in our system","format":"unix_timestamp","example":1681990528},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the article"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the article at the time of the article creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"integer","description":"Article internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the article"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the article at the time of the article update (the user might have changed their username but not their user id)"},"SOURCE_DATA":{"type":"object","description":"The news source data of this article.","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"120"},"ID":{"type":"integer","description":"The unique identifier for the news source entry"},"SOURCE_KEY":{"type":"string","description":"The unique key for a news source"},"NAME":{"type":"string","description":"The name of the news source"},"IMAGE_URL":{"type":"string","description":"The image url for the article source"},"URL":{"type":"string","description":"The URL of the news source.","example":"https://example.com"},"LANG":{"type":"string","description":"The Article Source Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)","example":"EN"},"SOURCE_TYPE":{"type":"string","description":"RSS, API, TWITTER","example":"RSS"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the source is indicated as (yyyy-mm-dd).","format":"unix_timestamp"},"SORT_ORDER":{"type":"integer","description":"Internal sort order of the source to define the field overwrites"},"CALL_TIMEOUT":{"type":"integer","description":"The milliseconds before a network call timeout for a news source","example":60000},"SKIP_ARTICLE_IMAGE":{"type":"boolean","description":"Skip uploading images from this news source articles. Defaults to news source cover image."},"BENCHMARK_SCORE":{"type":"number","description":"","example":0},"STATUS":{"type":"string","description":"The status for the Article Source entry. Allowed values: ACTIVE, INACTIVE","example":"ACTIVE"},"LAST_UPDATED_TS":{"type":"number","description":"The last script update timestamp for this article source.","example":1681990528,"format":"unix_timestamp"},"LAST_ARTICLE_PUBLISHED_AT":{"type":"number","description":"The timestamp for when the last article was published.","example":1681990528,"format":"unix_timestamp"},"LAST_CALL":{"type":"number","description":"The last call timestamp for this source.","example":1681990528,"format":"unix_timestamp"},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp for when the last call was successful.","example":1681990528,"format":"unix_timestamp"},"CREATED_ON":{"type":"number","description":"Article Source internal creation unix ts in our system","example":1681990528,"format":"unix_timestamp"},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the news source"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the news source at the time of the news source creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"number","description":"Article Source internal last updated unix ts in our system","example":1681990528,"format":"unix_timestamp"},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the news source"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the news source at the time of the news source update (the user might have changed their username but not their user id)"}}},"CATEGORY_DATA":{"type":"array","description":"An array of categories this article belongs to.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"122"},"ID":{"type":"integer","description":"The unique identifier for the news category entry"},"NAME":{"type":"string","description":"The name of the news category"},"CATEGORY":{"type":"string","description":"","example":"BTC"}}}}}},"NEWS_ARTICLES_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/NEWS_ARTICLES"}},"Err":{"type":"object","properties":{}}}},"NEWS_SOURCE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"120"},"ID":{"type":"integer","description":"The unique identifier for the news source entry"},"SOURCE_KEY":{"type":"string","description":"The unique key for a news source"},"NAME":{"type":"string","description":"The name of the news source"},"IMAGE_URL":{"type":"string","description":"The image url for the article source"},"URL":{"type":"string","description":"The URL of the news source.","example":"https://example.com"},"LANG":{"type":"string","description":"The Article Source Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)","default":"EN","example":"EN"},"SOURCE_TYPE":{"type":"string","description":"RSS, API, TWITTER","default":"RSS","example":"RSS"},"LAUNCH_DATE":{"type":"integer","description":"The launch date of the source is indicated as (yyyy-mm-dd).","format":"unix_timestamp"},"SORT_ORDER":{"type":"integer","description":"Internal sort order of the source to define the field overwrites","default":0,"example":0},"CALL_TIMEOUT":{"type":"integer","description":"The milliseconds before a network call timeout for a news source","default":60000,"example":60000},"SKIP_ARTICLE_IMAGE":{"type":"boolean","description":"Skip uploading images from this news source articles. Defaults to news source cover image.","default":false,"example":false},"BENCHMARK_SCORE":{"type":"number","description":"","default":0,"example":0},"STATUS":{"type":"string","description":"The status for the Article Source entry. Allowed values: ACTIVE, INACTIVE","default":"ACTIVE","example":"ACTIVE"},"LAST_UPDATED_TS":{"type":"integer","description":"The last script update timestamp for this article source.","format":"unix_timestamp","example":1681990528},"LAST_ARTICLE_PUBLISHED_AT":{"type":"integer","description":"The timestamp for when the last article was published.","format":"unix_timestamp","example":1681990528},"LAST_CALL":{"type":"integer","description":"The last call timestamp for this source.","format":"unix_timestamp","example":1681990528},"LAST_CALL_SUCCESS":{"type":"integer","description":"The timestamp for when the last call was successful.","format":"unix_timestamp","example":1681990528},"CREATED_ON":{"type":"integer","description":"Article Source internal creation unix ts in our system","format":"unix_timestamp","example":1681990528},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the news source"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the news source at the time of the news source creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"integer","description":"Article Source internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the news source"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the news source at the time of the news source update (the user might have changed their username but not their user id)"}}},"NEWS_SOURCE_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/NEWS_SOURCE"}},"Err":{"type":"object","properties":{}}}},"NEWS_CATEGORY":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"122"},"ID":{"type":"integer","description":"The unique identifier for the news category entry"},"NAME":{"type":"string","description":"The name of the news category"},"JSON_TEXT_FILTER":{"type":"object","description":"The filters for the news category.","properties":{"INCLUDED_WORDS":{"type":"array","description":"Words related or included in news category","items":{"type":"string"}},"EXCLUDED_PHRASES":{"type":"array","description":"phrases to should be excluded from news category","items":{"type":"string"}},"INCLUDED_PHRASES":{"type":"array","description":"phrases that should be included in news category","items":{"type":"string"}}}},"STATUS":{"type":"string","description":"The status for the News category entry. Allowed values: ACTIVE, INACTIVE","default":"ACTIVE","example":"ACTIVE"},"CREATED_ON":{"type":"integer","description":"News category internal creation unix ts in our system","format":"unix_timestamp","example":1681990528},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the news category"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the news category at the time of the news category creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"integer","description":"News category internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the news category"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the news category at the time of the news category update (the user might have changed their username but not their user id)"}}},"NEWS_CATEGORY_RESPONSE":{"type":"object","properties":{"Data":{"type":"array","items":{"$ref":"#/components/schemas/NEWS_CATEGORY"}},"Err":{"type":"object","properties":{}}}},"NEWS_ARTICLE":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"121"},"ID":{"type":"integer","description":"The unique identifier for the article entry"},"GUID":{"type":"string","description":"The Global Unique Identifier (GUID) of the article. A GUID is a unique reference number used as an identifier in computer systems. The \"Article guid\" is unique for every article and serves as its distinct identifier."},"PUBLISHED_ON":{"type":"integer","description":"The unix timestamp when the article was first published. This information is useful for understanding the timeline of the content, sorting articles by date, or determining the recency of the information.","format":"unix_timestamp"},"PUBLISHED_ON_NS":{"type":"integer","description":"The nanosecond part of the PUBLISHED_ON field.","format":"unix_timestamp"},"IMAGE_URL":{"type":"string","description":"The URL, or web address, of the article's associated or featured image. This URL can be used to retrieve the image for display, providing a visual context for the article content. The URL points directly to the location where the image file is stored online."},"TITLE":{"type":"string","description":"The heading or title of a specific article. It's a text string that gives a concise description of the article's content."},"SUBTITLE":{"type":"string","description":"The subheading or subtitle of a specific article. It's a text string that gives additional context to the article's title."},"AUTHORS":{"type":"string","description":"The author or authors of a specific article."},"URL":{"type":"string","description":"The web address that directs to the specific content or article on a source website. It's a unique URL used for directly linking to the article or for fetching additional data from the article page."},"SOURCE_ID":{"type":"integer","description":"The unique identifier for the source of the article or content. The \"SOURCE_ID\" allows for easy tracking and categorization of articles based on their origin, facilitating analysis by source, or fetching additional content from the same source. ","example":41},"BODY":{"type":"string","description":"The main textual content of the article. It includes the substance of the article but it it generally very limited since sources want clients to visit their website. This is where the primary information of the article is found."},"KEYWORDS":{"type":"string","description":"A list of words or phrases that are relevant to the content of the article. These keywords are given by the source and serve as a summary of the main themes, topics, or subjects covered in the article."},"LANG":{"type":"string","description":"The article Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)","default":"EN","example":"EN"},"UPVOTES":{"type":"integer","description":"The number of upvotes this article has.","example":10},"DOWNVOTES":{"type":"integer","description":"The number of downvotes this article has.","example":3},"SCORE":{"type":"integer","description":"The score of this article.","example":7},"SENTIMENT":{"type":"string","description":"The sentiment polarity of this article. We compute this using ChatGPT.","default":"","example":"POSITIVE"},"STATUS":{"type":"string","description":"The status for the Article. Allowed values: ACTIVE, DELETED","default":"ACTIVE","example":"ACTIVE"},"CREATED_ON":{"type":"integer","description":"Article internal creation unix ts in our system","format":"unix_timestamp","example":1681990528},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the article"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the article at the time of the article creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"integer","description":"Article internal last updated unix ts in our system","format":"unix_timestamp","example":1681990528},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the article"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the article at the time of the article update (the user might have changed their username but not their user id)"},"SOURCE_DATA":{"type":"object","description":"The news source data of this article.","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"120"},"ID":{"type":"integer","description":"The unique identifier for the news source entry"},"SOURCE_KEY":{"type":"string","description":"The unique key for a news source"},"NAME":{"type":"string","description":"The name of the news source"},"IMAGE_URL":{"type":"string","description":"The image url for the article source"},"URL":{"type":"string","description":"The URL of the news source.","example":"https://example.com"},"LANG":{"type":"string","description":"The Article Source Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)","example":"EN"},"SOURCE_TYPE":{"type":"string","description":"RSS, API, TWITTER","example":"RSS"},"LAUNCH_DATE":{"type":"number","description":"The launch date of the source is indicated as (yyyy-mm-dd).","format":"unix_timestamp"},"SORT_ORDER":{"type":"integer","description":"Internal sort order of the source to define the field overwrites"},"CALL_TIMEOUT":{"type":"integer","description":"The milliseconds before a network call timeout for a news source","example":60000},"SKIP_ARTICLE_IMAGE":{"type":"boolean","description":"Skip uploading images from this news source articles. Defaults to news source cover image."},"BENCHMARK_SCORE":{"type":"number","description":"","example":0},"STATUS":{"type":"string","description":"The status for the Article Source entry. Allowed values: ACTIVE, INACTIVE","example":"ACTIVE"},"LAST_UPDATED_TS":{"type":"number","description":"The last script update timestamp for this article source.","example":1681990528,"format":"unix_timestamp"},"LAST_ARTICLE_PUBLISHED_AT":{"type":"number","description":"The timestamp for when the last article was published.","example":1681990528,"format":"unix_timestamp"},"LAST_CALL":{"type":"number","description":"The last call timestamp for this source.","example":1681990528,"format":"unix_timestamp"},"LAST_CALL_SUCCESS":{"type":"number","description":"The timestamp for when the last call was successful.","example":1681990528,"format":"unix_timestamp"},"CREATED_ON":{"type":"number","description":"Article Source internal creation unix ts in our system","example":1681990528,"format":"unix_timestamp"},"CREATED_BY":{"type":"integer","description":"Internal user id of the user who created the news source"},"CREATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who created the news source at the time of the news source creation (the user might have changed their username but not their user id)"},"UPDATED_ON":{"type":"number","description":"Article Source internal last updated unix ts in our system","example":1681990528,"format":"unix_timestamp"},"UPDATED_BY":{"type":"integer","description":"Internal user id of the user who last updated the news source"},"UPDATED_BY_USERNAME":{"type":"string","description":"Internal username of the user who last updated the internal information of the news source at the time of the news source update (the user might have changed their username but not their user id)"}}},"CATEGORY_DATA":{"type":"array","description":"An array of categories this article belongs to.","items":{"type":"object","properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"122"},"ID":{"type":"integer","description":"The unique identifier for the news category entry"},"NAME":{"type":"string","description":"The name of the news category"},"CATEGORY":{"type":"string","description":"","example":"BTC"}}}}}},"NEWS_ARTICLE_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/NEWS_ARTICLE"},"Err":{"type":"object","properties":{}}}},"AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_TICK":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message, this is 884 for overall market cap and volume type messages.","example":"884","x-cc-api-group":"ID"},"CCSEQ":{"type":"number","description":"Our internal sequence number for this tick update, this is unique per total mkt cap update. It will be increasing by 1 for each new tick update we send.","example":13909,"x-cc-api-group":"ID"},"VALUE":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria at the VALUE_LAST_UPDATE_TS timestamp.","example":1073384783274.86,"x-cc-api-group":"VALUE"},"VALUE_FLAG":{"type":"string","description":"The flag indicating if the value has increased (UP), decreased (DOWN), or not changed (UNCHANGED).","example":"DOWN","x-cc-api-group":"VALUE"},"VALUE_LAST_UPDATE_TS":{"type":"number","description":"The timestamp in seconds when this value was calculated.","example":1692601200,"x-cc-api-group":"LAST_UPDATE"},"CURRENT_HOUR_OPEN":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria closest to the start of the current hour.","example":1073089233689.17,"x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_HIGH":{"type":"number","description":"The highest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the current hour.","example":1074095376292.45,"x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_LOW":{"type":"number","description":"The lowest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the current hour.","example":1072197612091.88,"x-cc-api-group":"CURRENT_HOUR"},"CURRENT_HOUR_TOP_TIER_VOLUME":{"type":"number","description":"The sum of assets top-tier volumes (top-tier volume * price quoted in USD) that meet the inclusion criteria in the current hour.","example":44854562.1433197,"x-cc-api-group":"CURRENT_HOUR"},"CURRENT_DAY_OPEN":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria closest to the start of the current day (00:00:00 GMT/UTC).","example":1080602817937.58,"x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_HIGH":{"type":"number","description":"The highest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the current day (00:00:00 GMT/UTC).","example":1081524260778.76,"x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_LOW":{"type":"number","description":"The lowest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the current day (00:00:00 GMT/UTC).","example":1068544157540.24,"x-cc-api-group":"CURRENT_DAY"},"CURRENT_DAY_TOP_TIER_VOLUME":{"type":"number","description":"The sum of assets top-tier volumes (top-tier volume * price quoted in USD) that meet the inclusion criteria in the current day (00:00:00 GMT/UTC).","example":2071110780.87245,"x-cc-api-group":"CURRENT_DAY"},"MOVING_24_HOUR_OPEN":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria closest to the start of the 24 hours period (23 hours + current hour).","example":1073752467725.54,"x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_HIGH":{"type":"number","description":"The highest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the 24 hours period (23 hours + current hour).","example":1150589120092.26,"x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_LOW":{"type":"number","description":"The lowest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the 24 hours period (23 hours + current hour).","example":1068544157540.24,"x-cc-api-group":"MOVING_24_HOUR"},"MOVING_24_HOUR_TOP_TIER_VOLUME":{"type":"number","description":"The sum of assets top-tier volumes (top-tier volume * price quoted in USD) that meet the inclusion criteria during the 24 hours period (23 hours + current hour).","example":6333913990.66755,"x-cc-api-group":"MOVING_24_HOUR"}}},"AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_TICK_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_TICK"},"Err":{"type":"object","properties":{}}}},"AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO":{"type":"object","x-visible-in-ai":false,"properties":{"UNIT":{"type":"string","description":"The unit of the message.","example":"DAY"},"TIMESTAMP":{"type":"number","description":"The timestamp in seconds of the beginning of the histo period. For minute it would be every minute at the beginning of the minute, for hour it would be the start of the hour and for daily it is 00:00 GMT.","example":1690070400},"TYPE":{"type":"string","description":"Type of the message, this is 886 .","example":"886","x-cc-api-group":"ID"},"OPEN":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria closest to the start of the time period.","example":1249453672091.03,"x-cc-api-group":"OHLC"},"HIGH":{"type":"number","description":"The highest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the time period.","example":1273320328974.45,"x-cc-api-group":"OHLC"},"LOW":{"type":"number","description":"The lowest sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria during the time period.","example":1222674752985.26,"x-cc-api-group":"OHLC"},"CLOSE":{"type":"number","description":"The sum of assets circulating mkt caps (circulating supply * price quoted in USD) that meet the inclusion criteria closest to the end of the time period.","example":1236681954253.6,"x-cc-api-group":"OHLC"},"TOP_TIER_VOLUME":{"type":"number","description":"The sum of assets top-tier volumes (top-tier volume * price quoted in USD) that meet the inclusion criteria during the time period.","example":7289867603.64326,"x-cc-api-group":"VOLUME"}}},"AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/AGGREGATED_ASSETS_MARKET_CAP_AND_VOLUME_HISTO"},"Err":{"type":"object","properties":{}}}},"RATE_LIMIT_RESPONSE_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"TYPE":{"type":"string","description":"Type of the message.","example":"3000","x-cc-api-group":"ID"},"API_KEY":{"type":"object","description":"Contains the rate limit information for the API key, including the number of API calls used, the maximum allowed, and the remaining calls available across different time periods (SECOND, MINUTE, HOUR, DAY, MONTH). This field allows you to monitor how close you are to your API key's rate limit and take appropriate action to avoid being rate-limited. The SOFT_CAP_ALLOWANCE_MULTIPLIER may be included to indicate the overage allowed beyond the maximum limit before rate-limiting is enforced.","properties":{"TYPE":{"type":"string","description":"Defines the split type of the rate limit usage data.","example":"3001","x-cc-api-group":"ID"},"USED":{"type":"object","description":"Represents the API calls already used, split by the time periods defined in the periods fields (second, minute, hour, day, month).","example":{"TYPE":"3002","SECOND":19,"MINUTE":872,"HOUR":3580,"DAY":65782,"MONTH":238910},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"}}},"MAX":{"type":"object","description":"Represents the maximum number of API calls allowed, split by the time periods defined in the periods fields (second, minute, hour, day, month), with an allowance multiplier for overage.","example":{"TYPE":"3003","SECOND":100,"MINUTE":1000,"HOUR":10000,"DAY":100000,"MONTH":1000000,"SOFT_CAP_ALLOWANCE_MULTIPLIER":1.2},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"},"SOFT_CAP_ALLOWANCE_MULTIPLIER":{"type":"integer","description":"A multiplier that allows API requests to exceed the maximum rate limit by a percentage before being rate-limited. For example, a value of 1.2 allows for a 20% overage before enforcement.","example":1.2,"x-cc-api-group":"ID"}}},"REMAINING":{"type":"object","description":"Represents the number of API calls remaining before hitting the rate limit, split by the time periods defined in the periods fields (second, minute, hour, day, month).","example":{"TYPE":"3004","SECOND":81,"MINUTE":128,"HOUR":6420,"DAY":34218,"MONTH":761090},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"}}}},"example":{"TYPE":"3001","USED":{"TYPE":"3002","SECOND":19,"MINUTE":872,"HOUR":3580,"DAY":65782,"MONTH":238910},"MAX":{"TYPE":"3003","SECOND":100,"MINUTE":1000,"HOUR":10000,"DAY":100000,"MONTH":1000000,"SOFT_CAP_ALLOWANCE_MULTIPLIER":1.2},"REMAINING":{"TYPE":"3004","SECOND":81,"MINUTE":128,"HOUR":6420,"DAY":34218,"MONTH":761090}},"x-cc-api-group":"ID"},"AUTH_KEY":{"type":"object","description":"Contains the rate limit information for the AUTH_KEY, including the number of API calls used, the maximum allowed, and the remaining calls available across different time periods (SECOND, MINUTE, HOUR, DAY, MONTH). The AUTH_KEY is used when accessing the documentation page or utilizing services on the CryptoCompare or CCData websites.","properties":{"TYPE":{"type":"string","description":"Defines the split type of the rate limit usage data.","example":"3001","x-cc-api-group":"ID"},"USED":{"type":"object","description":"Represents the API calls already used, split by the time periods defined in the periods fields (second, minute, hour, day, month).","example":{"TYPE":"3002","SECOND":19,"MINUTE":872,"HOUR":3580,"DAY":65782,"MONTH":238910},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"}}},"MAX":{"type":"object","description":"Represents the maximum number of API calls allowed, split by the time periods defined in the periods fields (second, minute, hour, day, month), with an allowance multiplier for overage.","example":{"TYPE":"3003","SECOND":100,"MINUTE":1000,"HOUR":10000,"DAY":100000,"MONTH":1000000,"SOFT_CAP_ALLOWANCE_MULTIPLIER":1.2},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"},"SOFT_CAP_ALLOWANCE_MULTIPLIER":{"type":"integer","description":"A multiplier that allows API requests to exceed the maximum rate limit by a percentage before being rate-limited. For example, a value of 1.2 allows for a 20% overage before enforcement.","example":1.2,"x-cc-api-group":"ID"}}},"REMAINING":{"type":"object","description":"Represents the number of API calls remaining before hitting the rate limit, split by the time periods defined in the periods fields (second, minute, hour, day, month).","example":{"TYPE":"3004","SECOND":81,"MINUTE":128,"HOUR":6420,"DAY":34218,"MONTH":761090},"x-cc-api-group":"ID","properties":{"TYPE":{"type":"string","description":"Type of the rate limit data (used, max, or remaining).","example":"3002","x-cc-api-group":"ID"},"SECOND":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current second.","example":0,"x-cc-api-group":"ID"},"MINUTE":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current minute.","example":0,"x-cc-api-group":"ID"},"HOUR":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current hour.","example":0,"x-cc-api-group":"ID"},"DAY":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current day.","example":0,"x-cc-api-group":"ID"},"MONTH":{"type":"integer","description":"The total API calls used, max allowed, or remaining within the current month.","example":0,"x-cc-api-group":"ID"}}}},"example":{"TYPE":"3001","USED":{"TYPE":"3002","SECOND":19,"MINUTE":872,"HOUR":3580,"DAY":65782,"MONTH":238910},"MAX":{"TYPE":"3003","SECOND":100,"MINUTE":1000,"HOUR":10000,"DAY":100000,"MONTH":1000000,"SOFT_CAP_ALLOWANCE_MULTIPLIER":1.2},"REMAINING":{"TYPE":"3004","SECOND":81,"MINUTE":128,"HOUR":6420,"DAY":34218,"MONTH":761090}},"x-cc-api-group":"ID"}},"description":"The response object contains the current rate limit usage data for both API_KEY and AUTH_KEY. This includes the number of API calls USED, the MAX allowed calls, and the REMAINING calls before reaching the limit. The data is provided across various time periods (SECOND, MINUTE, HOUR, DAY, MONTH). Additionally, a SOFT_CAP_ALLOWANCE_MULTIPLIER may be present to indicate how much over the maximum allowed calls the client can go before being rate-limited."},"RATE_LIMIT_RESPONSE_DATA_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/RATE_LIMIT_RESPONSE_DATA"},"Err":{"type":"object","properties":{}}}},"API_VERSION_DATA":{"type":"object","x-visible-in-ai":false,"properties":{"VERSION":{"type":"string","description":"The version of the API consists of three parts: the first number (2) represents the main version tied to the base URL, which only changes if the base URL changes, ensuring no breaking changes occur without a URL update. The second number (1) indicates breaking changes to the format while keeping the same URL; however, this number should never really change. If a breaking change is needed, it would be announced at least 6 months in advance, though due to our deprecation policy and individual endpoint versioning, this scenario should rarely, if ever, occur. The last number (21356) is our internal package version, incremented with each system deployment, primarily for internal tracking, and will always increase, though it may have gaps.","example":"2.1.21356"}},"description":"The current API version. It helps clients to be aware of any API updates or changes."},"API_VERSION_DATA_RESPONSE":{"type":"object","properties":{"Data":{"$ref":"#/components/schemas/API_VERSION_DATA"},"Err":{"type":"object","properties":{}}}}},"requestBodies":{},"securitySchemes":{"api_key":{"type":"apiKey","name":"api_key","description":"If there is a query api_key it will overwrite the cookie value","in":"query"},"http_basic":{"type":"http","scheme":"bearer","bearerFormat":"apiKey"}}},"tags":[{"x-id":"introduction","name":"Introduction","x-summary-seo":"The CoinDesk API provides access to our industry leading digital asset data. Our REST API allows straightforward access on a request-by-request basis, and we recommend it for almost all use cases.","x-icon":"book-open","x-expanded":true,"x-endpoint-groups":[],"description":"Our Digital Asset Data REST API is a **reliable**, **accurate**, and **efficient** tool in the digital asset industry. We've combined our **rich legacy** of crypto data ingestion and processing (we've been doing this since January 2013) with **state-of-the-art technology** to provide you with **seamless access** to the world of digital assets. Whether you're an institutional investor, an emerging startup, or a tech enthusiast, our API serves as your trusted guide in the ever-evolving digital asset space.\n\nFurthermore, our dedication to security and data integrity is paramount. We're proud to be **ISO 27001 certified**, reflecting our commitment to implementing the **highest international standards of information security**. This certification underscores our dedication to proper processes and safeguarding of data, offering you an additional layer of confidence and trust in our services.\n\n## Highlighted Features and Offerings:\n\nEvery aspect of our API, from rate limiting based on calls (not credits) to our transparent error reporting, reflects a meticulous user centric design.\n\n- **Comprehensive Data Depth and Connectivity**: Our data coverage is unparalleled, encompassing centralized and decentralized spot, futures, and options exchanges. With extensive asset data, up-to-the-minute news, revealing social metrics, and insightful on-chain metrics – all intricately linked by our instrument mapping, we provide a holistic view into the world of digital assets, including DeFi. This comprehensive approach ensures users access an interconnected and comprehensive web of information, vital for informed decision-making.\n- **Precision, Quality and Reliability at Its Core**: Whether it's obtaining the latest reference price for a list of assets or venturing into historical order book snapshots, our API ensures impeccable accuracy.\n- **Unmatched Versatility**: Transition seamlessly between different endpoints, each optimized for distinct needs, but all having consistent design, data structures, and field naming as well as thoroughly documented response formats and error codes.\n- **Best Support in the Industry**: Our legacy is not just built on technology but also on the unwavering support we extend to our users. Challenges, queries, or insights – we're here, always. Beyond the conventional, our in-house support team is equipped with an extensive array of tools to handle the most common concerns and requests. But what truly sets us apart is our hands-on approach. When circumstances demand, our developers and product specialists don’t hesitate to jump on a call, ensuring every query is resolved with expertise and a personal touch.\n- **Interface Consistency**: Our interface's consistency ensures that users can effortlessly retrieve and analyze data, all the parameters and response formats are clearly defined and consistent.\n- **Multiple Exchanges Access**: Easily pull data from multiple exchanges (spot, futures, options, defi) without the hassle of understanding each of their internal formats, API inconsistencies, API migrations or having to deal with lengthy contract negotiations.\n- **Unified Format**: No need to navigate different data formats; we offer a seamless experience across the board.\n- **Standardized Instrument Mapping**: This guarantees that the data fetched matches exactly with the instrument specified by the user. As a result, it eradicates any ambiguities or inconsistencies related to asset listings, such as SYMBOL/TICKER and NAME, across exchanges.\n- **Tailored Rate Limiting**: Depending on your subscription tier, our API provides varying rate limits, ensuring an optimized experience for every user. To keep you always informed, we offer tools for you to check your remaining limits and usage, ensuring clarity at every step.\n- **Clear API Responses**: Our API is meticulous, providing all responses in the universally accepted JSON format. Yet, for those who need it, most endpoints also grant access to CSV response formats.\n- **Transparent and Informative Error Handling**: Our system prioritizes clear communication, especially during unexpected scenarios. We provide comprehensive error messages through an 'Err' response field, aiding in identifying and resolving issues. Alongside status codes, these messages simplify troubleshooting. Additionally, the 'Warn' response field alerts users to parameter ambiguities or situations where partial but satisfactory responses are provided.\n- **Up to date API Status**: Stay abreast of our API's health, uptime stats, and more through our dedicated status page. From latency metrics to previous updates, we believe in full transparency, ensuring you're never in the dark.\n- **We Are Always Our First Customer**: Before any feature or update reaches you, it's **tested** and **integrated** into **our own workflows**. As our first and most critical user, we ensure that our tools and systems meet the high standards we set for ourselves. This **\"eat your own dog food\"** philosophy not only **showcases our belief in our products** but also ensures that when you use them, they have already passed the stringent tests of continuous internal use.\n\n## Essential Guidelines and Considerations for API Usage\n\n- **Data Update Frequency**: Data on all the endpoints is continuously updated; however, users should be mindful of potential delays depending on the data source (centralized exchange APIs, on-chain data, news, etc) and data complexity. Real-time data may have slight latency (under 100ms) depending on network conditions.\n- **Rate Limiting**: To maintain optimal performance and service availability, users must adhere to the rate limiting guidelines provided further down in this document. Exceeding these limits may result in temporary access restrictions.\n- **Compliance with Legal Regulations**: Users are responsible for compliance with all applicable laws and regulations pertaining to the use and dissemination of blockchain and digital asset data in their respective jurisdictions.\n- **Data Interpretation**: Our endpoints offer an unparalleled depth of understanding; however, users should be well-versed in blockchain and financial markets concepts to accurately interpret and utilize the data provided.\n- **Third-Party Data Sources**: While we strive for accuracy and authenticity by complementing our data with trusted third-party sources, users should be aware that we cannot guarantee the completeness or accuracy of data derived from external providers.\n- **Potential Costs and Licensing**: Depending on the subscription level and usage, additional costs may apply. Be aware of any applicable licensing terms and agreements.\n- **Robust Data Integration**: Ensure that the data integration with your application is robust, taking advantage of our standardized instrument mapping and unified formats. Your integration will remain resilient as our Versioning and Deprecation Policy guarantees that changes to data structures or parameters occur only in new versions of endpoints, allowing for stable integration with existing versions.\n- **Privacy Considerations**: Be mindful of privacy regulations and best practices when utilizing personal or sensitive data in conjunction with our API, aligning your use with relevant legal and ethical standards.\n- **Availability and Redundancy**: Understand that while we strive to provide maximum uptime, unexpected outages may occur. Implement fallback mechanisms to handle such scenarios.\n- **Versioning and Deprecation Policy**: CoinDesk may introduce new versions of endpoints, deprecating old ones. Deprecated endpoints will continue to function with no changes to data structures or parameters, and their documentation will be moved to the Deprecated Section of the product list.\n\n## Authentication and Security\n\nEnsuring the secure and efficient interaction with the CoinDesk Digital Asset API is paramount to us. We've designed our authentication methods to provide speed, ease of use and safety in every interaction.\n\nWhen accessing the CoinDesk API, there are several methods to authenticate your requests, each with its own benefits, allowing flexibility depending on your integration needs:\n\n- **Query Parameter**: You can append your API key directly to the URL of your request as follows: `https://data-api.coindesk.com/index/cc/v1/latest/tick?market=ccix&instruments=BTC-USD&api_key={YOUR_API_KEY_HERE}`. This method is straightforward and easy to test, as you can simply paste the URL into a browser or a tool like cURL to make a request.\n- **Authorization Header**: Alternatively, you can send your API key in the header of your HTTP request. **As a Bearer Token**: `Authorization: Bearer {YOUR_API_KEY_HERE}` or as a Custom API Key Header: `Authorization: Apikey {YOUR_API_KEY_HERE}`. Using headers is a common practice that keeps the API key from being displayed in the URL, which could be a security enhancement.\n- **X-API-Key Header**: Lastly, you have the option to use a dedicated header: `x-api-key: {YOUR_API_KEY_HERE}`. This is a simple and clean way to include your API key and is especially useful when you have to set up multiple headers and want to keep them clearly organized.\n\nChoose the method that best fits your application's architecture and security protocols. Each method is designed to provide secure, effective authentication with minimal hassle.\n\n**Easy Authentication** with **Uncompromising Security**:\n\n- **Protecting Your API Key**: Keep your API key private and avoid placing it in publicly accessible locations such as client-side code (e.g., JavaScript within a web page), public repositories on platforms like GitHub, or shared documents on cloud services. Storing the API key in a secure server environment or using environment variables is recommended to maintain confidentiality and prevent unauthorized access.\n- **Secure Communication**: Utilize HTTPS for all API calls to ensure encrypted communication and protect sensitive information during transmission.\n- **Monitoring and Anomaly Detection**: Implement monitoring to detect any anomalous activity related to your API key or endpoints, notifying you of potentially unauthorized access. [You can monitor your use pattern here](/settings/api-keys).\n- **Revocation and Rotation**: Know the procedures for revoking and rotating API keys if there is suspicion of compromised security, ensuring continuity and integrity of service. [You have full controls to remove or add a new API keys in the api-keys user section](/settings/api-keys).\n\n## Always Available Support\n\nWhether you have queries, face challenges, or seek deeper insights, our [dedicated support team is just a click away](https://support.ccdata.io/hc/en-gb/requests/new), eager to assist and guide. \n\nOur **Enterprise plans** provide **24-hour email and Slack support** access, with direct communication links to our developers and product owners, reflecting our core belief that **'We all succeed together'**. This mantra drives every endeavor, emphasizing collective growth and collaboration as the keystones to true success in the digital asset industry—a global industry where **markets never sleep**. Even though we're based in the UK, we recognize that your journey through this ever-evolving space should not be hindered by your timezone or location. Thus, our support infrastructure at CoinDesk is as widespread as the industry we serve, offering **24-hour support** and **on-call engineers during office hours**, with best efforts out of hours in situations of extreme urgency.\n\nWith our always-available support, we guarantee a seamless experience, reflecting the global and timeless nature of the industry we serve. **Trust us to be your steadfast companion, around the clock, around the globe**.\n\n## A Transparent Approach to Rate Limiting:\n\nIn the ever-evolving realm of digital assets, we understand the **importance of simplicity and clarity**. At CoinDesk, we've adopted an **intuitive approach to rate limiting**, focusing on individual API calls rather than the often perplexing credit system. This ensures a straightforward experience for our users, devoid of any ambiguities.\n\n**Each API call you make, irrespective of its complexity or the data it retrieves, is counted uniformly**. This approach ensures not only ease of understanding but also greater transparency in monitoring your usage. With CoinDesk, you're always aware of your consumption, **empowering you to make informed decisions without getting entangled in the intricacies of credit calculations**. Our commitment remains unwavering: **to deliver an experience that's as seamless as it is transparent**.\n\n**We enforce rate limits at the account level rather than per API key**. This means that all API keys associated with your account share the same rate limit quotas. You can generate multiple API keys to manage and monitor different applications, services, or teams, providing flexibility in how you organize your access.\n\nWhile you can **obtain usage statistics and monitor activity per API key, the overall rate limits apply collectively to your entire account**. This approach ensures that your total API usage remains within your subscription's allocated limits, regardless of how many API keys you have or how they are used.\n\n**Benefits of Account-Level Rate Limiting:**\n- **Flexibility**: Manage multiple projects or teams by using separate API keys under the same account without worrying about individual rate limits. However, if you prefer to isolate usage (dev, staging, production) or have separate rate limits, we recommend using multiple accounts. Even a free API key might suffice (for dev and staging) since most endpoints are available on the free tier. If you require higher limits for these additional accounts, we can easily provide you with separate accounts that have their own rate limits, distinct from your main account. Please **mention your requirements to our sales or support team**, and we'll be **happy to assist you in setting up the appropriate accounts to meet your needs**.\n- **Monitoring**: Track usage and performance metrics for each API key to identify usage patterns or potential issues in specific applications.\n- **Control**: Easily revoke or regenerate API keys if necessary without affecting your overall rate limit.\n- **Important Note**: Be mindful that heavy usage from one API key can impact the available rate limit for other keys under the same account. It's essential to coordinate usage across your applications to avoid unintentionally exceeding your account's rate limits.\n\nYou can readily verify your rate limit by visiting our [Rate Limit Verification Endpoint](/documentation/data-api/admin_v2_rate_limit). While this action consumes one of your rate limit calls, there's no cause for concern. All our API responses are equipped with a range of headers that offer detailed insights into your rate limiting status:\n- **X-Ratelimit-Limit**: Indicates the maximum number of requests you can make within specific time frames. It sets your usage capacity limits for different windows (e.g., per second, minute, hour, day, month).\n- **X-Ratelimit-Remaining**: Shows how many requests you have left in the current rate limit window.\n- **X-Ratelimit-Remaining-All**: Provides a detailed count of remaining requests across all time windows.\n- **X-Ratelimit-Reset**: Tells you when the current rate limit window resets, in seconds.\n- **X-Ratelimit-Reset-All**:  Shows reset times for all rate limit windows.\n\nHere is an example of response headers with comments about how they work:\n```\nX-Ratelimit-Limit:\n  100000000, # First Entry (Monthly Limit): 100000000 requests per month.\n  38;window=1;burst=600;policy=\"fixed window\", # Per Second Limit: 38 requests; window=1 second; burst=600.\n  2241;window=60;burst=30000;policy=\"fixed window\", # Per Minute Limit: 2241 requests; window=60 seconds; burst=30000.\n  134409;window=3600;burst=1000000;policy=\"fixed window\", # Per Hour Limit: 134409 requests; window=3600 seconds; burst=1000000.\n  3225807;window=86400;burst=9000000;policy=\"fixed window\", # Per Day Limit: 3225807 requests; window=86400 seconds; burst=9000000.\n  100000000;window=2678400;policy=\"fixed window\" # Monthly Limit with Window: 100000000 requests; window=2678400 seconds (~31 days).\n\nX-Ratelimit-Remaining: 66676658 # You have 66,676,658 requests remaining in your monthly limit.\n\nX-Ratelimit-Remaining-All:\n  66676658, # First Entry (Monthly Remaining): 66676658 requests left this month.\n  599;window=1, # Per Second Remaining: 599 requests left in the current second.\n  29956;window=60, # Per Minute Remaining: 29956 requests left in the current minute.\n  919204;window=3600, # Per Hour Remaining: 919204 requests left in the current hour.\n  7626094;window=86400, # Per Day Remaining: 7626094 requests left in the current day.\n  66676658;window=2678400 # Monthly Remaining with Window: 66676658 requests left; window=2678400 seconds.\n\nX-Ratelimit-Reset: 1191769 # Your monthly rate limit resets in 1,191,769 seconds.\n\nX-Ratelimit-Reset-All:\n  1191769, # First Entry (Monthly Reset): Resets in 1191769 seconds.\n  1;window=1, # Per Second Reset: Resets in 1 second.\n  17;window=60, # Per Minute Reset: Resets in 17 seconds.\n  17;window=3600, # Per Hour Reset: Resets in 17 seconds.\n  25217;window=86400, # Per Day Reset: Resets in 25,217 seconds.\n  1191769;window=2678400 # Monthly Reset with Window: Resets in 1191769 seconds; window=2678400 seconds.\n```\nNote: The first entry in each header always refers to the monthly limit.\n\n**How to Utilize Rate Limit Headers Effectively**\n- **Monitor Your Usage**: Regularly check the X-Ratelimit-Remaining and X-Ratelimit-Remaining-All headers to avoid exceeding your limits.\n- **Optimize Request Timing**: Use the X-Ratelimit-Reset and X-Ratelimit-Reset-All headers to plan your requests around reset times, ensuring efficient use of your rate limits.\n- **Implement Back-off Strategies**: If you're approaching your rate limit, consider slowing down your request rate or temporarily pausing requests until the limit resets.\n- **Error Handling**: Be prepared to handle HTTP 429 (Too Many Requests) errors gracefully by implementing retry logic based on the reset timers provided.\n\n## CCSEQ for Unmatched Reliability\n\nOur **CCSEQ (CoinDesk Sequence)** sets a new standard in the field of digital asset data provision, sharply distinguishing us from other data providers. Here's an insight into how CCSEQ functions and why it's integral to our and your operations:\n\n- **Sequential Design**: CCSEQ's **gapless**, **always-increasing numerical value**, in a **sequential order**, ensures continuity across transactions, independent of the original generation time of trades or messages.\n- **Efficient Non-Chronological Handling**: CCSEQ's non-chronological methodology circumvents constant reordering, overcoming network delays and timestamp discrepancies, maintaining efficiency and consistency without time-of-occurrence limitations.\n- **Accuracy and Integrity**: The validation process for each CCSEQ incrementation is rigorous. Even in exceptional cases where a message is processed and found INVALID — a detection made by our research and data analysts — the CCSEQ stays unchanged, protecting the sequence's integrity.\n- **Reliable Integration and Processing**: The CCSEQ architecture's flexibility facilitates the integration of missed or out-of-sequence messages, ensuring accuracy and reliability, and satisfying intricate data processing demands without sacrificing integrity.\n- **Enhanced User Experience**: Within the CCSEQ system, specific endpoints divide valid messages into the Data response array and invalid ones into the Invalid array. This design assures a smooth experience for users, devoid of any CCSEQ sequence gaps.\n\nBy employing the innovative CCSEQ system, we uphold stringent precision and robustness in our data management, boosting the dependability of digital asset data streams. The application of CCSEQ emphasizes our devotion to supplying uninterrupted and error-tolerant service, confirming that every processed piece of data adds to a consistent and exhaustive technical insight into the digital asset market.\n\n## Versioning and Deprecation Policy\n\nDocumentation is available for both the CryptoComapre 'Min API' and CoinDesk 'Data API'. You can toggle between the documentation for each of these with the drop down in the top left of the page. The Data API is CoinDesk's currently supported API platform - all endpoints have the base url [https://data-api.coindesk.com](https://data-api.coindesk.com/). \n\nThe **Data API** will **provide access** to all of the **newest products and data types**, and we **recommend** its use to all new API users. While some of the endpoints might be available without an API_KEY (for ease of access by decentralized apps) we recommend always registering an account and passing an api key to any endpoint you use.\n\nThe **Min API** gives options for both a REST and Websocket connection but is considered deprecated and, as of  November 2023, it will not be receiving any new updates.\n\nPeriodically, we will make changes and updates to the functionality of certain endpoints, which could result in a new version of the endpoint becoming available for use. In these cases, the old version will become deprecated and replaced in the documentation by the new version. Any deprecated endpoints will continue to function as they initially did with no changes. Documentation on functionality for these deprecated endpoints will all still be available, but will be moved to the [Deprecated Section](/documentation/data-api/deprecated) of the product list.\n\n**Deprecation Header Notification**: To assist developers in identifying deprecated endpoints programmatically, we include a Deprecation HTTP response header in the responses from deprecated endpoints. This header will have a value of true, indicating that the endpoint is deprecated. We may also include a date parameter specifying the deprecation date. Clients are encouraged to check for this header and plan their migrations accordingly.\n\n**Important Advisory on Deprecated Endpoints**: While we are dedicated to promoting a decentralized ecosystem and enhancing user accessibility (by ocasionally allowing IP Rate limits on some endpoints), it's crucial to note that endpoints will switch to **api_key**-only access six months after their deprecation date. For those already utilizing an **api_key**, this change will have no impact and they should focus on migrating to the new endpoints. This shift is designed to uphold the integrity and reliability of our service offerings. If you are currently relying on deprecated endpoints, we strongly recommend either integrating an api_key within this six-month timeframe or migrating to the new version to ensure continuous, uninterrupted access to the data you require.\n\n## Your Reliable Partner in Digital Assets: CoinDesk\n\nNavigate the complexities of the financial world with the CoinDesk Digital Asset REST API. It offers **clarity**, **reliability**, **efficiency**, and **ease of use** in accessing digital asset data. Explore our comprehensive documentation and wide range of features to confidently manage your digital asset needs. **We're not just a service provider; we are your dependable partner in the realm of digital assets**. Join us to enhance your digital asset experience.\n\nTo discover all the trading pairs use our Markets + Instruments endpoints or [you can browse our full trade and OHLCV+ offering on our data catalogue product page](https://data.coindesk.com/data-catalogue)."},{"x-id":"index_cc","name":"Indices & Ref. Rates","x-summary-seo":"Our indices and reference rates endpoints give you the ability to access both real-time and historical data for a specific digital asset index, either for one asset or for a basket of assets","x-icon":"calculator","x-expanded":true,"x-endpoint-groups":[{"x-id":"index_cc_v1_latest","x-name":"Latest Tick","paths":["/index/cc/v1/latest/tick"]},{"x-id":"index_cc_v1_historical","x-name":"Historical OHLCV+","paths":["/index/cc/v1/historical/days","/index/cc/v1/historical/hours","/index/cc/v1/historical/minutes"]},{"x-id":"index_cc_v1_historical_days_ccda","x-name":"DA Fixings","paths":["/index/cc/v1/historical/days/ccda"]},{"x-id":"index_cc_v1_historical_message","x-name":"Index Updates","paths":["/index/cc/v2/historical/messages/hour","/index/cc/v2/historical/messages"]},{"x-id":"index_cc_v1_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/index/cc/v1/latest/instrument/metadata"]},{"x-id":"index_cc_v2_markets","x-name":"Markets","paths":["/index/cc/v2/markets"]},{"x-id":"index_cc_v1_markets_instrument","x-name":"Markets + Instruments","paths":["/index/cc/v1/markets/instruments","/index/cc/v1/markets/instruments/unmapped"]},{"x-id":"index_cc_v1_forex_rates","x-name":"Forex Rates","paths":["/index/cc/v1/latest/tick/forex","/index/cc/v1/historical/days/forex","/index/cc/v1/historical/hours/forex","/index/cc/v1/historical/minutes/forex","/index/cc/v1/markets/instruments/unmapped/forex"]},{"x-id":"index_cc_v1_markets_instruments_unmapped_eod","x-name":"EOD Markets + Instruments","paths":["/index/cc/v1/markets/instruments/unmapped/eod"]},{"x-id":"index_cc_v1_historical_days_eod","x-name":"EOD Historical OHLCV+ Day","paths":["/index/cc/v1/historical/days/eod"]},{"x-id":"index_cc_v1_utilities","x-name":"Index Utilities","paths":["/index/cc/v1/historical/days/composition","/index/cc/v1/reconstitution"]}],"description":"Our **In-House Indices and Reference Rates** endpoints stand as an **emblem of precision** and **expertise** in the **financial data** landscape. They encompass a unique blend of innovation and detailed scrutiny, offering an array of methodologies to meet diverse demands. Leveraging our numerous data integrations, our indices offer both cutting-edge insights and a comprehensive view into historical trends. Esteemed names from the index industry, who are our valued clients, bear testimony to our excellence in this domain. Further amplifying our portfolio are over **200 bespoke indices**, each masterfully curated, maintained, and periodically rebalanced to mirror specific market sentiments. To further enhance reliability, each index update is tagged with our proprietary CCSEQ (CoinDesk Sequence). This allows users to consistently and reliably track every index update.\n\n**Four prime exemplars of our indices are**:\n\n- **CCIX (CoinDesk Aggregated Index - Formerly CCCAGG)**: Regulated by the UK Financial Conduct Authority (FCA) and EU BMR Compliant, CCIX provides an accurate and reliable real-time reference price benchmark for cryptocurrency traders and investors to value their portfolios at any time. CoinDesk proprietary CCIX methodology is calculated as a 24-hour volume-weighted average price, ensuring the benchmark is market-representative and replicable. Through the implementation of a meticulous exchange selection methodology, CoinDesk secures that only the most reliable and trustworthy exchanges are included in the calculation. Thus, CCIX not only represents a fair cryptoasset price but also provides a reliable measure of direct 'Top-tier' volumes. CCIX is calculated for each cryptocurrency in every market where it is traded (example: CCIX BTC-USD, CCIX BTC-EUR). You can read the full product description for CCIX (formerly CCCAGG) on our [CCIX reference rate product and methodology page](https://ccdata.io/indices/ccix).\n- **CADLI (CoinDesk Adaptive Diversified Liquidity Index)**: CADLI provides an accurate and reliable real-time average market price, which can be used for price discovery, especially in illiquid markets. CoinDesk proprietary methodology for CADLI blends all available markets for a given cryptocurrency and returns a consolidated 24-hour volume-weighted average USD price, offering a simple and easy-to-understand cryptoasset reference. CADLI conversions are also available through CoinDesk API, allowing the user to specify any quote currency. For example, the user can request BTC-ETH, and the endpoint will return the CADLI BTC-USD price converted into ETH. Moreover, as CADLI blends all available markets, users can see the complete market liquidity/volume for an asset and gain a comprehensive overview of trading activity. Additionally, users can decide which particular markets are more pertinent to their analysis, such as only 'top-tier' exchanges. You can read the full product description for CADLI (the CoinDesk Adaptive Diversified Liquidity Index) on our [CADLI reference rate product and methodology page](https://ccdata.io/indices/cadli).\n- **CoinDesk Blended Prices**: Regulated by the UK Financial Conduct Authority (FCA) and EU BMR Compliant, CoinDesk Blended Prices provide an alternative to investors seeking a benchmark that combines stablecoins and fiat currencies into a consolidated USD reference price. The proprietary methodology for CoinDesk Blended Prices is calculated as a 24-hour volume-weighted average price using a customised selection of exchanges and an outlier detection methodology, converting the final prices into USD.\n- **DA Fixings (CoinDesk Digital Asset Fixings)**: CoinDesk Digital Asset Fixings Index (DA Fixings) offers a settlement index for each currency pair, providing traders and investors with the most reliable, market-representative price for portfolio valuation. This proprietary methodology involves a 10-minute time-weighted average based on the company’s FCA-regulated CCIX benchmark family. The standard DA Fixings follow a 4:00 pm London time standard, however, the user can specify any time and specific timezone on CoinDesk API. Read our announcement blog post [Introducing DA Fixings: CoinDesk Robust Framework for Digital Assets Pricing](https://ccdata.io/blogs/introducing-da-fixing-ccdatas-robust-framework-for-digital-assets-pricing) or [visit our Digital Asset Fixing Indices page for more information](https://ccdata.io/indices/da-fixings).\n\nThe **depth** and **breadth** of our **in-house indices** go beyond generic benchmarks, positioning them as **essential tools** for any **financial endeavor**. These indices are more than just numbers; they are comprehensive stories of market behaviors, trends, and potentials.\n\n## Key Features\n\n- **Real-time Data Insights**: Obtain immediate values, peaks, troughs, and volume details for any chosen digital asset index.\n- **Extensive Historical Archives**: Dive deep into the past, accessing data points like open, high, low, close, and volume metrics for tailored timeframes.\n- **Customized Bespoke Indices**: Choose from over 200 specially crafted indices, each designed to cater to unique market needs and segments.\n- **Expert-Endorsed Quality**: Our indices are trusted by some of the industry's leading names, reinforcing their credibility and utility.\n- **Market Trend Profiling**: Harness the data to identify emerging patterns, potential inflection points, and forecast market shifts.\n- **In-Depth Technical Analysis Tools**: Empower your trading strategies and analytical pursuits with granular and precise data insights.\n- **Diverse Methodological Approaches**: Benefit from our multifaceted methodologies that offer a holistic perspective on market movements and potentialities.\n\n## Use Cases\n\n- **Benchmarking and Performance Tracking**: Leverage our indices as reliable yardsticks to measure and compare the performance of individual or baskets of digital assets.\n- **Strategic Investment Planning**: Investors can use our comprehensive indices data to identify potential investment avenues and inform their strategies.\n- **Advanced Market Research**: Analysts can tap into our vast data reserves for intricate studies, evaluations, and predictive modeling.\n- **Customized Portfolio Management**: Fund managers can rely on our bespoke indices to craft and modify portfolios based on specific market segments or objectives.\n- **Regulatory Monitoring & Compliance**: With the granularity and precision of our data, regulatory bodies can efficiently oversee market practices, ensuring optimal transparency and fair play.\n- **Trading and Arbitrage Opportunities**: Active traders can identify and act on potential trading opportunities or arbitrage windows using our real-time and historical data.\n\nThe **In-House Indices** endpoints we present are the epitome of **accuracy**, **versatility**, and **practicality**, carved to **satisfy** the **sophisticated demands of today's financial professionals**. Emanating from **in-depth research** and our **reliable data sources**, we **deliver** data that is both genuine and comprehensive. **With innovations ranging from bespoke indices creation to multi-methodological data analysis, we've set new industry standards**. Whether you're a seasoned investor, a budding analyst, or a regulatory body, our offerings resonate with a broad spectrum of needs. Partner with us, and you're not just accessing data; you're tapping into a legacy of excellence in digital asset index analysis. Navigate the intricacies of the financial world with confidence, backed by our unmatched offerings."},{"x-id":"spot","name":"Spot","x-summary-seo":"The Spot endpoints are precisely crafted to provide users with both real-time and historical data concerning digital asset valuations","x-icon":"btc","x-expanded":true,"x-endpoint-groups":[{"x-id":"spot_v1_latest","x-name":"Latest Tick","paths":["/spot/v1/latest/tick","/spot/v2/latest/tick/asset"]},{"x-id":"spot_v1_historical","x-name":"Historical OHLCV+","paths":["/spot/v1/historical/days","/spot/v1/historical/hours","/spot/v1/historical/minutes"]},{"x-id":"spot_v1_historical_trade","x-name":"Trades","paths":["/spot/v2/historical/trades/hour","/spot/v2/historical/trades"]},{"x-id":"spot_v1_historical_orderbook","x-name":"Order Book","paths":["/spot/v1/historical/orderbook/l2/metrics/minute","/spot/v2/historical/orderbook/l2/snapshots/minute","/spot/v1/historical/orderbook/l2/consolidated/metrics/minute","/spot/v1/historical/orderbook/l2/consolidated/snapshots/minute"]},{"x-id":"spot_v1_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/spot/v1/latest/instrument/metadata"]},{"x-id":"spot_v2_markets","x-name":"Markets","paths":["/spot/v2/markets"]},{"x-id":"spot_v1_markets_instrument","x-name":"Markets + Instruments","paths":["/spot/v1/markets/instruments","/spot/v1/markets/instruments/unmapped"]}],"description":"The **Spot** endpoints are precisely crafted to provide users with both **real-time** and **historical data** concerning **digital asset valuations**. This data comes directly from centralized exchanges. Our interface's consistency ensures that users can **effortlessly retrieve** and **analyze** data from different exchanges **without confronting varied data structures, unexpected rate limits or API changes and lengthy licensing negotiations**.\n\nOne of our standout features is the **standardized instrument mapping**. This guarantees that the data fetched matches exactly with the instrument specified by the user. As a result, it eradicates any ambiguities or inconsistencies related to asset listings, such as SYMBOL/TICKER and NAME, across exchanges.\n\nWe parse, **deduplicate**, **analyze**, and **process** each spot trade, ensuring a **breadth** and **accuracy** that is **second to none**. Due to this unique approach, **the spot dataset available through our API is richer than what one would get by connecting directly to exchanges**.\n\nWith real-time links to both **streaming** and **query-based endpoints** from spot exchanges, we ensure **comprehensive** and **prompt data acquisition**. Consequently, users benefit from a dataset that is not only richer but also more current than what's typically available from exchanges. To further enhance reliability, each trade is tagged with our proprietary CCSEQ (CoinDesk Sequence). This allows users to consistently and reliably track every trade.\n\nWe also carefully compute **L1** and **L2 order book** metrics from each **order book update**, painting a clearer picture of market depth in the spot industry.\n\n## Key Features\n- **Immediate Trade Capture**: By connecting to both streaming and polling endpoints on exchanges, we guarantee the swift acquisition of trade data.\n- **Trade-Processed Spot Metrics**: We derive spot metrics directly from individual trades, ensuring data depth and granularity.\n- **Order Book Metrics (L1 & L2)**: We provide in-depth Level 1 (L1) and Level 2 (L2) order book metrics, constructed upon each order book update, offering a multi-dimensional view of market dynamics.\n- **Enhanced Historical Data Access**: Our meticulous trade processing yields a superior suite of historical data, encompassing metrics like open, high, low, close, total volume, volume by trade side and number of trades by trade side.\n- **Standardized Instrument Mapping**: Precision remains our cornerstone, ensuring data retrieval matches the user-specified instrument across all exchanges.\n- **CCSEQ for Trade Reliability**: Each trade is enriched with a unique CCSEQ, ensuring users can track trades without omissions or overlaps. \n- **Performance Metrics**: Users can discern nuanced trajectories of digital assets, enriched by our trade-centric data approach.\n- **In-depth Market Trend Analysis**: Our trade-centric dataset grants sharper insights into market dynamics and potential pivot points.\n- **Advanced Technical Analysis**: You can harness the power of our uniquely curated dataset for even more intricate analytical metrcis.\n\n\n## Use Cases\n- **Market Analysis Platform Development**: Leveraging our Spot endpoints, developers can build sophisticated digital asset market analysis platforms that pull data from multiple exchanges with ease, thanks to the standardized instrument mapping.\n- **Asset Management**: Portfolio managers can use our platform to fetch real-time and historical data, aiding in their asset allocation decisions by understanding market depth, trends, and performance metrics.\n- **Digital Asset Trading**: Traders can gain a competitive edge by accessing our granular trade-processed metrics, utilizing both L1 & L2 order book insights, and ensuring they're always up-to-date with our immediate trade capture feature.\n- **Risk Management**: Institutions can mitigate risks by using our endpoints to monitor market volatility, study market depth, and analyze trade reliability using the CCSEQ.\n- **Research and Reporting**: Analysts and researchers can exploit our rich dataset to produce detailed market reports, examining the trajectory of digital assets and forecasting market movements.\n- **Regulatory and Compliance Monitoring**: With our detailed trade capture and unique CCSEQ for each trade, regulatory bodies and compliance teams can audit and track transactions consistently across exchanges, ensuring transparency.\n- **Arbitrage Opportunities**: By analyzing L1 & L2 order book metrics across various exchanges in real-time, traders can spot and exploit arbitrage opportunities more efficiently.\n- **Integration into Existing Financial Platforms**: Financial institutions looking to integrate digital asset data into their platforms can do so seamlessly with our unified interface, saving on development time and ensuring data accuracy.\n\nOur **Spot** endpoints are meticulously engineered to be a **premier resource** for accessing and **analyzing digital asset valuations** from centralized exchanges. We **prioritize precision**, **depth**, and **user-friendliness**, resulting in an offering that **stands out in both richness and reliability**. Our features, ranging from trade-centric metrics to standardized instrument mapping, cater to a diverse array of use cases. Whether you're an individual trader, a portfolio manager, a researcher, or a regulatory body, our platform ensures that your data-driven requirements in the digital asset landscape are met with utmost accuracy and comprehensiveness. By integrating our Spot endpoints, users and institutions alike can gain an edge in the rapidly evolving world of digital assets, ensuring informed decision-making and superior outcomes.\n\nYou can read more about [our spot data coverage and use cases on our trade data product page](https://ccdata.io/data/trade-data)."},{"x-id":"futures","name":"Futures","x-summary-seo":"The Futures endpoints are engineered to provide users with real-time and historical data.","x-icon":"balance-scale","x-expanded":true,"x-endpoint-groups":[{"x-id":"futures_v1_latest","x-name":"Latest Tick","paths":["/futures/v1/latest/tick"]},{"x-id":"futures_v1_historical","x-name":"Historical OHLCV+","paths":["/futures/v1/historical/days","/futures/v1/historical/hours","/futures/v1/historical/minutes"]},{"x-id":"futures_v1_historical_trade","x-name":"Trades","paths":["/futures/v2/historical/trades/hour","/futures/v2/historical/trades"]},{"x-id":"futures_v2_historical_orderbook","x-name":"Order Book","paths":["/futures/v2/historical/orderbook/l2/metrics/minute","/futures/v2/historical/orderbook/l2/snapshots/minute"]},{"x-id":"futures_v1_latest_open_interest","x-name":"Latest Tick (OI)","paths":["/futures/v1/latest/open-interest/tick"]},{"x-id":"futures_v1_historical_open_interest","x-name":"Historical OHLC+ (OI)","paths":["/futures/v1/historical/open-interest/days","/futures/v1/historical/open-interest/hours","/futures/v1/historical/open-interest/minutes"]},{"x-id":"futures_v1_historical_open_interest_message","x-name":"Updates (OI)","paths":["/futures/v2/historical/open-interest-messages/hour","/futures/v2/historical/open-interest-messages"]},{"x-id":"futures_v1_latest_funding_rate","x-name":"Latest Tick (FR)","paths":["/futures/v1/latest/funding-rate/tick"]},{"x-id":"futures_v1_historical_funding_rate","x-name":"Historical OHLC+ (FR)","paths":["/futures/v1/historical/funding-rate/days","/futures/v1/historical/funding-rate/hours","/futures/v1/historical/funding-rate/minutes"]},{"x-id":"futures_v1_historical_funding_rate_message","x-name":"Updates (FR)","paths":["/futures/v2/historical/funding-rate-messages/hour","/futures/v2/historical/funding-rate-messages"]},{"x-id":"futures_v1_historical_settled_funding_rate_message","x-name":"Updates (SFR)","paths":["/futures/v2/historical/settled-funding-rate-messages"]},{"x-id":"futures_v1_latest_liquidation","x-name":"Latest Tick (LIQ)","paths":["/futures/v1/latest/liquidation/tick"]},{"x-id":"futures_v1_historical_liquidation","x-name":"Historical OHLC+ (LIQ)","paths":["/futures/v1/historical/liquidation/days","/futures/v1/historical/liquidation/hours","/futures/v1/historical/liquidation/minutes"]},{"x-id":"futures_v1_historical_liquidation_message","x-name":"Updates (LIQ)","paths":["/futures/v2/historical/liquidation-messages/hour","/futures/v2/historical/liquidation-messages"]},{"x-id":"futures_v1_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/futures/v1/latest/instrument/metadata"]},{"x-id":"futures_v2_markets","x-name":"Markets","paths":["/futures/v2/markets"]},{"x-id":"futures_v1_markets_instrument","x-name":"Markets + Instruments","paths":["/futures/v1/markets/instruments","/futures/v1/markets/instruments/unmapped"]}],"description":"The **Futures endpoints** are engineered to provide users with **real-time** and **historical data**. This data originates from the world's leading futures exchanges, ensuring authenticity and relevance. The **uniformity** of our interface means that users can **seamlessly pull** and **compare** data from different exchanges **without confronting varied data structures, unexpected rate limits, API changes, or lengthy licensing negotiations**.\n\nA notable highlight is our uniform instrument mapping. This ensures that the data retrieved aligns perfectly with the instrument users have designated. Thus, uncertainties or discrepancies concerning futures contract identifiers, like SYMBOL/TICKER, CONTRACT_CURRENCY, CONTRACT_SIZE, UNDERLYING_CURRENCY or CONTRACT NAME, across exchanges are a non-issue.\n\nWe get each **futures trade**, **open interest update** and **funding rate update**, parsing, **deduplicating**, **analyzing**, and **processing** them, ensuring a **breadth** and **accuracy** that is **second to none**. Due to this unique approach, the **futures dataset available through our API is richer than what one would get by connecting directly to exchanges**.\n\nWith data links to both **streaming** and **query-based endpoints** from futures exchanges, we ensure **comprehensive** and **prompt data acquisition**. You can enjoy access to data that is not only detailed but also more immediate than typically available directly from exchanges. Every futures trade, open interest update and funding rate update is enriched with our unique CCSEQ (CoinDesk Sequence) for seamless tracking.\n\nWe also carefully compute **L1** and **L2 order book** metrics from each **order book update**, painting a clearer picture of **market depth** in the futures industry.\n\n## Key Features\n* **Prompt Trade, Open Interest and Funding Rate Recording**: Through connections to streaming and polling endpoints on futures exchanges, we ensure rapid and comprehensive data capture.\n* **Trade Refined Futures Metrics**: Metrics derived straight from individual futures trades, providing unparalleled depth and precision.\n* **Open Interest Refined Futures Metrics**: Metrics derived straight from individual futures open interest updates, providing unparalleled depth and precision.\n* **Funding Rate Refined Futures Metrics**: Metrics derived straight from individual futures funding rate updates, providing unparalleled depth and precision.\n* **Order Book Metrics (L1 & L2)**: Delve deep with Level 1 (L1) and Level 2 (L2) order book metrics, built upon every order book update, showcasing the intricacies of market movements.\n* **Extensive Historical Data Access**: Owing to our exhaustive trade processing, users have a premium set of historical data that covers metrics like contract open, high, low, close, total volume, volume by trade side, number of trades by trade side and total contract volume.\n* **Uniform Instrument Mapping**: Accuracy and data quality is our mantra, ensuring every data point retrieved aligns perfectly with user-input specifications across all exchanges.\n* **CCSEQ for Trade Consistency**: Each futures trade boasts a unique CCSEQ, granting users the ability to track each trade's journey with no gaps or repeats.\n* **Performance Indices**: Understand the potential paths of futures contracts, enriched by our comprehensive data methodology.\n* **Detailed Market Momentum Analysis**: Our data ensures a clearer understanding of market shifts, helping identify possible inflection points.\n* **Sophisticated Technical Projections**: Benefit from our exclusive data for intricate future-centric analysis.\n\n## Use Cases\n* **Futures Analysis Platform Creation**: Using our Futures endpoints, developers can sculpt advanced futures market analysis platforms, extracting data from varied exchanges effortlessly due to uniform instrument mapping.\n* **Hedge Fund Operations**: Fund managers can utilize our suite to access real-time/historical data, facilitating informed hedging and speculation based on market depth and performance metrics.\n* **Digital Asset Futures Trading**: Traders can wield our granular, trade-processed insights, tapping into L1 & L2 order book data, and staying a step ahead with our prompt trade recording.\n* **Risk Strategy Formulation**: Institutions can calibrate risk with our endpoints, tracking market swings, understanding market depth, and using CCSEQ for trade reliability.\n* **Investigation and Forecasting**: Market analysts and researchers can utilize our enriched dataset for in-depth futures market analysis and predictive endeavors.\n* **Regulatory Oversight and Compliance**: Owing to our detailed trade capture and the unique CCSEQ for each futures trade, monitoring bodies can consistently oversee and audit transactions, ensuring utmost transparency.\n* **Arbitrage Ventures**: Traders can spot and capitalize on arbitrage possibilities across exchanges by scrutinizing real-time L1 & L2 order book metrics.\n* **Merging with Traditional Financial Ecosystems**: Organizations aiming to assimilate futures data into their operations can effortlessly do so with our standardized interface, cutting down on integration timelines and guaranteeing data precision.\n\nThe **Futures endpoints** we offer stand at the forefront of **precision**, **breadth**, and **utility**, meticulously designed to cater to the **intricate needs of futures data consumers**. Sourcing from leading global futures exchanges, our platform ensures authenticity, depth, and timely data, packaged in a consistent and user-friendly manner. Through innovations like **uniform instrument mapping** and our **proprietary CCSEQ**, we've **eliminated** traditional **pain points** of discrepancies and tracking challenges. Coupled with our refined futures metrics spanning trades, open interests, and funding rates, users are empowered with unmatched insights. From hedge fund managers to regulatory bodies, our platform's adaptability addresses a wide range of use cases. With us, you're not just accessing futures data; you're unlocking a holistic, accurate, and efficient experience in futures market analysis. Dive into the future of futures data with confidence, backed by our unparalleled offerings.\n\nYou can read more about [our derivaties data coverage and use cases on our derivatives data product page](https://ccdata.io/data/derivatives)."},{"x-id":"options","name":"Options","x-summary-seo":"The Options endpoints are engineered to provide users with real-time and historical data.","x-icon":"exchange","x-expanded":true,"x-endpoint-groups":[{"x-id":"options_v1_latest","x-name":"Latest Tick","paths":["/options/v1/latest/tick"]},{"x-id":"options_v1_historical","x-name":"Historical OHLCV+","paths":["/options/v1/historical/days","/options/v1/historical/hours","/options/v1/historical/minutes"]},{"x-id":"options_v1_historical_trade","x-name":"Trades","paths":["/options/v2/historical/trades/hour","/options/v2/historical/trades"]},{"x-id":"options_v1_historical_orderbook","x-name":"Order Book","paths":["/options/v1/historical/orderbook/l2/metrics/minute","/options/v1/historical/orderbook/l2/snapshots/minute"]},{"x-id":"options_v1_latest_open_interest","x-name":"Latest Tick (OI)","paths":["/options/v1/latest/open-interest/tick"]},{"x-id":"options_v1_historical_open_interest","x-name":"Historical OHLC+ (OI)","paths":["/options/v1/historical/open-interest/days","/options/v1/historical/open-interest/hours","/options/v1/historical/open-interest/minutes"]},{"x-id":"options_v1_historical_open_interest_message","x-name":"Updates (OI)","paths":["/options/v2/historical/open-interest-messages/hour","/options/v2/historical/open-interest-messages"]},{"x-id":"options_v1_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/options/v1/latest/instrument/metadata"]},{"x-id":"options_v2_markets","x-name":"Markets","paths":["/options/v2/markets"]},{"x-id":"options_v1_markets_instrument","x-name":"Markets + Instruments","paths":["/options/v1/markets/instruments","/options/v1/markets/instruments/unmapped"]}],"description":"The **Options endpoints** are engineered to provide users with **real-time** and **historical data**. This data originates from the world's leading options exchanges, ensuring authenticity and relevance. Our interface's consistency ensures users can effortlessly fetch and juxtapose data from diverse exchanges **without confronting varied data structures, unexpected rate limits, API changes, or lengthy licensing negotiations**.\n\nA notable highlight is our **uniform instrument mapping**. This ensures that the data retrieved aligns perfectly with the instrument users have designated. Potential ambiguities or inconsistencies related to options contract markers such as SYMBOL, EXPIRATION_DATE, STRIKE_PRICE, CONTRACT_TYPE, and OPTION_STYLE across various exchanges become inconsequential.\n\nWe parse, **deduplicate**, **analyze**, and process each **option trade**, **open interest update**, and **implied volatility update** ensuring a **breadth** and **accuracy** that is **second to none**. Due to this unique approach, the **options dataset available through our API is richer than what one would get by connecting directly to exchanges**.\n\nWith data links to both **streaming** and **query-based endpoints** from options exchanges, we ensure **comprehensive** and **prompt data acquisition**. Users gain access to insights that are not only profound but also speedier than those typically acquired directly from exchanges. Every option trade and open interest update is supplemented with our proprietary CCSEQ (CoinDesk Sequence) for continuous tracking.\n\nWe also carefully compute **L1** and **L2 order book** metrics from each **order book update**, painting a clearer picture of market **depth** in the options industry.\n\nFurthermore, we diligently compute advanced **Greek metrics** from each options update, providing an in-depth representation of market dynamics.\n\n## Key Features\n- **Instant Trade and Open Interest Recording**: Leveraging connections to real-time and query-based endpoints on options exchanges, our data collection is swift and all-inclusive.\n- **Trade Elaborate Options Metrics**: Determine metrics straight from individual options trades, offering unparalleled granularity and clarity.\n- **Detailed Intrinsic Value-Based Options Metrics**: Get direct accees to the difference between the underlying asset's price and the strike price of the option. For instance, if you have a call option with a strike price of $50, and the current stock price is $55, the intrinsic value is $5. (only available when the option is in the money)\n- **Comprehensive Extrinsic Value-Based Options Metrics**:  Real-time and historical metrics on factors such as implied volatility, time left until expiration, interest rates, etc. It's also called time value since it can diminish as the option approaches its expiration date.\n- **Advanced Greek Metrics**: Explore in depth with comprehensive Greek metrics, founded on every options update, revealing market complexities.\n- **Order Book Metrics (L1 & L2)**: Delve deep with Level 1 (L1) and Level 2 (L2) order book metrics, built upon every order book update, showcasing the intricacies of market movements.\n- **Vast Historical Data Repository**: Benefit from our extensive processing capabilities, availing a rich array of historical data that includes metrics such as option open, high, low, close, volume, and implied volatility.\n- **Consistent Instrument Alignment**: Precision and data integrity is paramount, ensuring every dataset aligns flawlessly with user-defined parameters across all exchanges.\n- **CCSEQ for Trade Linearity**: Every option trade comes equipped with a unique CCSEQ, allowing users to trail each trade's trajectory without disruptions or repetitions.\n- **Performance Indicators**: Decode the prospective trajectories of option contracts, enriched by our robust data methodology.\n- **Comprehensive Market Momentum Analytics**: Leverage our data for an enhanced perception of market variations, pinpointing potential turning points.\n- **Advanced Technical Forecasts**: Tap into our data collection for sophisticated options-focused analysis.\n\n## Use Cases\n- **Options Analysis Platform Development**: Utilizing our Options endpoints, software developers can create superior options market analysis platforms, effortlessly extracting data across various exchanges thanks to consistent instrument alignment.\n- **Portfolio Management**: Asset managers can employ our data suite to access real-time and historical insights, enabling informed strategies based on market dynamics and performance indicators.\n- **Equity Options Trading**: Traders can exploit our detailed, trade-processed intelligence, diving deep into advanced Greek metrics, and staying abreast with our immediate trade logging.\n- **Risk Mitigation Strategy Development**: Financial institutions can refine risk with our endpoints, gauging market oscillations, comprehending market dynamics, and leveraging CCESQ for consistent trade and open interest tracking.\n- **Research and Projection**: Analysts and market researchers can tap into our enriched database for comprehensive options market scrutiny and foresight.\n- **Regulatory Monitoring and Conformity**: With our granular trade logs and the distinct CCESQ for each option trade, regulators can consistently supervise and review transactions, ensuring paramount transparency.\n- **Options Arbitrage Opportunities**: By examining real-time advanced Greek metrics, traders can identify and leverage arbitrage opportunities across exchanges.\n- **Integration with Conventional Financial Infrastructures**: Entities looking to incorporate options data into their workflows can seamlessly do so with our standardized interface, reducing integration durations and ensuring data exactness.\n\nOur Options endpoints define **excellence**, **depth**, and **functionality**, tailored to meet the **sophisticated demands** of **options data specialists**. Drawing from the top global options exchanges, our platform guarantees reliability, depth, and timely insights, packaged in a consistent and user-friendly manner. By pioneering features like **consistent instrument alignment** and our **proprietary CCSEQ**, we've **eliminated** traditional **pain points** of discrepancies and tracking challenges. Complemented by our **intricate options metrics** covering **trades**, **intrinsic** and **extrinsic values**, and the **Greeks**, users of our API receive **clear insights**. From portfolio managers to supervisory bodies, our platform's versatility addresses an array of applications. With us, you're not merely accessing options data; you're accessing comprehensive options market research. You can safely rely on our options data for in-depth insights.\n\nYou can read more about [our derivaties data coverage and use cases on our derivatives data product page](https://ccdata.io/data/derivatives)."},{"x-id":"derivatives_indices","name":"Derivatives Indices","x-summary-seo":"The Derivatives Indices endpoints are engineered to provide users with real-time and historical data.","x-icon":"balance-scale","x-expanded":true,"x-endpoint-groups":[{"x-id":"index_v1_latest","x-name":"Latest Tick","paths":["/index/v1/latest/tick"]},{"x-id":"index_v1_historical","x-name":"Historical OHLC+","paths":["/index/v1/historical/days","/index/v1/historical/hours","/index/v1/historical/minutes"]},{"x-id":"index_v1_historical_message","x-name":"Index Updates","paths":["/index/v2/historical/messages/hour","/index/v2/historical/messages"]},{"x-id":"index_v1_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/index/v1/latest/instrument/metadata"]},{"x-id":"index_v2_markets","x-name":"Markets","paths":["/index/v2/markets"]},{"x-id":"index_v1_markets_instrument","x-name":"Markets + Instruments","paths":["/index/v1/markets/instruments","/index/v1/markets/instruments/unmapped"]}],"description":"The **Derivatives Indices endpoints** are meticulously crafted to offer users both **real-time** and **historical insights** into the ever-evolving **derivatives indices market**. Our data stems from leading global Derivatives Indices providers, ensuring authenticity and relevance. The **uniformity** of our interface means that users can **seamlessly pull** and **compare** data from different exchanges **without confronting varied data structures, unexpected rate limits or API changes and lengthy licensing negotiations**.\n\nOur standout feature is the **uniform index mapping**. Users can be assured that the data retrieved resonates perfectly with the index they've specified. Issues such as discrepancies in INDEX_NAME, UNDERLYING_ASSET, or QUOTE_CURRENCY are made obsolete.\n\nEach derivatives index update, including underlying values, number of messages, and OHLCV (Open, High, Low, Close, Volume) is obtained, parsed, and processed, offering an expanse and precision that's unparalleled. With our approach, the **Derivatives Indices dataset available through our API is richer than what one would get by connecting directly to exchanges**.\n\nOur connection to both **real-time streaming** and **query-based endpoints** assures **exhaustive** and **immediate data retrieval**. Every derivatives index update is enriched with a unique CCSEQ (CoinDesk Sequence) for streamlined tracking.\n\nDiving deeper, we offer insights from every index update, offering users an in-depth view of the Derivatives Indices landscape.\n\n## Key Features\n\n- **Prompt Index Updates Recording**: With connections to real-time and query endpoints, we ensure swift and complete data collection.\n- **Underlying Values Metrics**: Metrics directly sourced from derivatives index updates, offering unmatched clarity and detail.\n- **OHLC Insights**: Delve into comprehensive metrics covering Open, High, Low, Close, and Number of Updates for each derivatives index.\n- **Broad Historical Data Access**: Our advanced data processing grants users a premium set of historical data, offering an unrivaled view into the past movements and trends.\n- **Uniform Index Mapping**: Every data point retrieved is in sync with user-defined criteria, ensuring consistency across all Derivatives Indices.\n- **CCSEQ for Consistent Tracking**: Every derivatives index update is tagged with a unique CCSEQ, ensuring seamless and gapless monitoring.\n- **Intuitive Data Visualization Tools**: Benefit from tools such as charts and graphs, facilitating sophisticated index analysis.\n\n## Use Cases\n\n- **Index Analysis Platform Development**: Developers can utilize our Derivatives Indices endpoints to craft intricate index market analysis platforms with ease due to our uniform index mapping.\n- **Portfolio Diversification**: Investors can use our detailed insights to make informed decisions on diversifying their portfolios based on index performance.\n- **Research and Predictive Analysis**: Analysts can harness our enriched data for comprehensive index market studies and forecasting.\n- **Regulatory Monitoring**: With our exhaustive capture of index data and the unique CCSSEQ for each update, regulators can efficiently monitor and ensure transparency.\n- **Market Trend Identification**: Traders and investors can keep a pulse on market trends by observing real-time updates and historical data.\n- **Integration with Financial Platforms**: Enterprises aiming to incorporate index data into their workflows can smoothly do so, benefiting from our uniform interface and reducing integration hassles.\n\nThe **Derivatives Indices** endpoints we provide are the **gold standard in clarity**, **range**, and **functionality**. We've tailored them to meet the nuanced demands of Derivatives Indices clients. By **relying on top-tier Derivatives Indices** sources, we ensure **data of high caliber**, **breadth**, and **punctuality**, all encased in a **user-centric design**. Innovations such as **uniform index mapping** and our **signature CCSEQ** have **eradicated** traditional **challenges** of mismatches and tracking difficulties. From researchers to market analysts, our offerings cater to diverse requirements. When you're with us, you're not merely accessing index data; you're experiencing the zenith of Derivatives Indices market analysis. Step into the next level of Derivatives Indices knowledge, fortified by our unmatched solutions.\n\nYou can read more about [our derivatives data coverage and use cases on our derivatives data product page](https://ccdata.io/data/derivatives)."},{"x-id":"on_chain_dex","name":"On-Chain DEX","x-summary-seo":"The On-Chain DEX endpoints are engineered with exceptional detail to deliver users an unparalleled breadth of real-time and historical data, focused on decentralized digital asset exchanges.","x-icon":"link","x-expanded":true,"x-endpoint-groups":[{"x-id":"onchain_v1_amm_latest_swap","x-name":"Latest Tick (Swap)","paths":["/onchain/v1/amm/latest/swap/tick"]},{"x-id":"onchain_v1_amm_historical_swap","x-name":"Historical OHLCV+ (Swap)","paths":["/onchain/v1/amm/historical/swap/days","/onchain/v1/amm/historical/swap/hours","/onchain/v1/amm/historical/swap/minutes"]},{"x-id":"onchain_v1_amm_historical_swap_message","x-name":"Swaps","paths":["/onchain/v2/amm/historical/swap-messages/hour","/onchain/v2/amm/historical/swap-messages"]},{"x-id":"onchain_v1_amm_historical_liquidity_update_message","x-name":"Liquidity Updates","paths":["/onchain/v2/amm/historical/liquidity-update-messages/hour","/onchain/v2/amm/historical/liquidity-update-messages"]},{"x-id":"onchain_v1_amm_latest_instrument_metadata","x-name":"Instrument Metadata","paths":["/onchain/v1/amm/latest/instrument/metadata"]},{"x-id":"onchain_v2_amm_markets","x-name":"Markets","paths":["/onchain/v2/amm/markets"]},{"x-id":"onchain_v1_amm_markets_instrument","x-name":"Markets + Instruments","paths":["/onchain/v1/amm/markets/instruments","/onchain/v1/amm/markets/instruments/unmapped"]}],"description":"The **On-Chain DEX** endpoints are engineered with exceptional detail to deliver users an unparalleled breadth of real-time and historical data, focused on **decentralized digital asset exchanges**. These endpoints grant direct access to **Automated Market Makers (AMMs) swaps** and **liquidity metrics** on multiple exchanges from multiple blockchains.\n\n**Automated Market Makers (AMMs)** are decentralized protocols that **allow digital assets to be traded in a permissionless and automatic way**. Instead of relying on traditional order books to match buyers and sellers, AMMs use algorithms and liquidity pools to facilitate trades, making them a cornerstone of the DeFi ecosystem.\n\nOur On-Chain DEX interface assures uniformity, allowing users to seamlessly access data from different decentralized platforms without grappling with varied formats. A unique feature that sets us apart is the standardized AMM Mapping—ensuring that fetched data aligns perfectly with the user-specified liquidity pair or trading protocol, thereby eliminating discrepancies across platforms.\n\nThe **On-Chain DEX integrations** perform detailed parsing, validation, and analysis of every transaction to produce an exceptionally rich dataset. Our granular approach ensures a quality of data that can't be achieved when pulling directly from a blockchain explorer. We utilize **real-time blockchain nodes** and **third-party backup blockchain data providers** and we acquire data both from the mempool and confirmed blocks, guaranteeing timely and exhaustive data collection. To fortify reliability, each transaction is tagged with a proprietary CCSEQ, letting users keep track of every transaction without omissions or overlaps.\n\n**Blockchain reorganizations** are inherently disruptive but are **a reality in decentralized networks**. Our system is designed to handle them seamlessly. Each swap and liquidity event is initially tagged with a 'PENDING' status until a sufficient number of confirmations (blocks) have passed. Should a reorg occur, we update the status of the affected swaps and liquidity events to 'INVALID'. We then process the reorged block, issue new unique On-chain Sequence IDs (CCSEQ) for the new messages, and update the derived data sets. On the **Ethereum network**, our system accommodates a **reorg size of up to 100 blocks** to ensure the highest level of data accuracy and reliability.\n\nWe leverage our own [asset endpoints](/documentation/data-api/onchain_v2_summary_by_chain) for the discovery of new assets and employ our dedicated [on-chain full block endpoints](/documentation/data-api/onchain_v1_block_2) and streaming integrations for real-time block processing. All data is stored unmapped, identified by a unique combination dex name, base asset address, quote asset address and chain asset ID. On the API endpoints, we map these raw values and apply the appropriate decimal point conversions to deliver end values that are both accurate and user-friendly.\n\n## Key Features\n\n- **Real-Time Transaction Capture**: With real-time blockchain intregrations, we ensure the immediate and comprehensive acquisition of on-chain data.\n- **AMM-Specific Metrics**: Detailed metrics are derived from AMM transactions, revealing depth, volume, and liquidity conditions.\n- **Standardized AMM Mapping**: Our rigorous standardization process assures that users obtain the exact data they request across multiple decentralized platforms.\n- **Enhanced Historical Data Access**: Leverage our expansive historical data, which includes metrics such as swaps, liquidity changes, and transaction fees.\n- **CCSEQ for Consistent Tracking**: Every on-chain swap and liquidity update is tagged with a unique CCSEQ, ensuring seamless and gapless monitoring.\n- **Comprehensive Liquidity Metrics**: Our endpoints provide vital information on liquidity pools, available liquidity, and slippage risks.\n\n## Use Cases\n\n- **Defi Analytics Platforms**: Utilize our On-Chain DEX endpoints to create robust analytics platforms capable of interpreting decentralized market activities.\n- **Asset Management**: Real-time and historical metrics can inform liquidity provisioning strategies for decentralized portfolio managers.\n- **Smart Contract Auditing**: Evaluate AMM swap effectiveness and smart contract interactions for auditing purposes.\n- **Risk Management**: Keep an eye on liquidity conditions to make informed decisions on risk mitigation in decentralized environments.\n- **Market Research**: Researchers can dive into our in-depth dataset for market reports, liquidity analysis, and trend forecasting.\n- **Regulatory and Compliance**: Use the CCSEQ to monitor and audit transactions across decentralized protocols, ensuring transparency.\n- **Arbitrage Opportunities**: Identify opportunities for decentralized arbitrage by analyzing liquidity and volume metrics.\n- **Financial Systems Integration**: Integrate our On-Chain DEX data into existing fintech platforms to expand their reach into decentralized markets.\n\nOur On-Chain DEX endpoints are meticulously designed to be the best resource for **real-time and historical data from decentralized asset markets**. We focus on **granularity**, **reliability**, and **user-friendliness**, offering features that serve a variety of use cases. By incorporating our On-Chain DEX endpoints, users gain an invaluable tool for understanding and participating in the fast-paced world of decentralized finance, ensuring accurate and comprehensive decision-making.\n\nYou can read more about [our on-chain dex data coverage and use cases on our on-chain dex data product page](https://ccdata.io/data/on-chain-data)."},{"x-id":"on_chain","name":"On-Chain Core","x-summary-seo":"The On-Chain Core endpoints are meticulously architected to provide users with both current and historical data concerning on-chain transactions and specific asset details","x-icon":"link","x-expanded":true,"x-endpoint-groups":[{"x-id":"onchain_v1_block_2","x-name":"ETH Blocks","paths":["/onchain/v1/block/2","/onchain/v1/block/2/raw"]},{"x-id":"onchain_v1_block_8","x-name":"BSC Blocks","paths":["/onchain/v1/block/8","/onchain/v1/block/8/raw"]},{"x-id":"onchain_v1_block_1","x-name":"BTC Blocks","paths":["/onchain/v1/block/1","/onchain/v1/block/1/raw"]},{"x-id":"onchain_v1_block_2410","x-name":"BASE Blocks","paths":["/onchain/v1/block/2410","/onchain/v1/block/2410/raw"]},{"x-id":"onchain_v1_block_808","x-name":"ARB Blocks","paths":["/onchain/v1/block/808","/onchain/v1/block/808/raw"]},{"x-id":"onchain_v1_block_3","x-name":"SOL Blocks","paths":["/onchain/v1/block/3/raw"]},{"x-id":"onchain_v1_address_metadata_2","x-name":"ETH Address","paths":["/onchain/v1/address/metadata/2"]},{"x-id":"onchain_v3_summary_by_chain","x-name":"Assets By Chain","paths":["/onchain/v3/summary/by/chain"]},{"x-id":"onchain_v2_data_by_address","x-name":"Asset By Address","paths":["/onchain/v2/data/by/address"]},{"x-id":"onchain_v2_historical_supply","x-name":"Historical Supply","paths":["/onchain/v2/historical/supply/days"]}],"description":"The **On-Chain Core endpoints** are meticulously architected to provide users with both **real-time and historical data** concerning **on-chain transactions** and any other blockchain derived data. Our data is derived from the **blockchain nodes we operate**, complemented by **trusted third-party data sources**. This combination ensures enhanced **reliability**, **accuracy**, and **authenticity**. The cohesive design of our interface assures that users can conveniently extract and delve into comprehensive blockchain data without the hassle of navigating through varied data structures.\n\nA key feature of our On-Chain Core data is the asset metadata retrieval. Users get a complete view of tokens or blockchain assets, including details like identifier, symbol, name, and description based on a smart contract address. Our On-Chain endpoints also address questions about supported blockchain platforms, supply metrics, and last block information for an asset.\n\nDiving deeper into the blockchain universe, every piece of data, be it **full blocks**, **addresses**, **transactions**, **logs**, **traces**, or other on-chain details, undergoes thorough **processing** to present users with an **unparalleled depth** of understanding. Whether one is exploring the characteristics of specific tokens, blockchains, or simply satisfying their intellectual curiosity, our On-Chain endpoints are the go-to destination for genuine and comprehensive blockchain insights.\n\nEmphasizing our commitment to a user-friendly experience, the on-chain blockchain URLs are meticulously organized around the blockchain asset ID (**/ochain/{endpoint_version}/block/{asset_id}**). For each blockchain we support, we provide four specialized endpoints: two dedicated to the latest blocks in either native or processed format, and two for retrieving a specific block based on the block number in native or processed format. This structuring aligns with our philosophy of precision, efficiency, and accessibility, ensuring that users can effortlessly interact with diverse blockchain data while maintaining the integrity and depth of information.\n\n## Key Features\n\n- **In-depth Block Analysis**: Gain comprehensive insights into full blocks, unveiling every transaction, log, and intricate detail within.\n- **Detailed Asset Metadata**: Seamlessly access critical information about tokens or blockchain assets, including their identifier, symbol, name, and description.\n- **Supported Blockchain Platforms Information**: Stay informed about the blockchain platforms supported by a specific asset.\n- **Real-time and Historical Supply Metrics**: Understand the evolution and current status of supply metrics for specific digital assets.\n- **Last Block Information**: Stay updated with the most recent block details for any given asset.\n\n## Use Cases\n\n- **Blockchain Research and Analysis**: Utilize our On-Chain Core endpoints for a deep dive into blockchain transactions, logs, and other details, serving as an invaluable tool for researchers and analysts.\n- **Asset Due Diligence**: Before investments or integrations, gather all essential metadata about a token or blockchain asset to ensure informed decision-making.\n- **Supply Chain Monitoring**: Monitor real-time and historical supply metrics, ensuring an understanding of asset liquidity and distribution over time.\n- **Integration into Blockchain Platforms**: Developers and institutions aiming to incorporate genuine on-chain data into their applications can easily tap into our endpoints, ensuring authentic and timely data.\n- **Educational Purposes**: For academicians, students, or enthusiasts wanting to understand the nitty-gritty of blockchains and tokens, our platform serves as a comprehensive and accurate knowledge base.\n- **Regulatory Oversight and Compliance**: With transparent and detailed block information, monitoring bodies can ensure adherence to regulations and maintain blockchain transparency.\n- **Asset Management and Portfolio Building**: Asset managers can use our On-Chain Core data to build a portfolio, tracking assets' characteristics and supply metrics for strategic positioning.\n\nOur On-Chain Core endpoints stand as a beacon for anyone venturing into the realm of blockchain and digital assets. Designed with **precision** and **depth**, our on-chain data suite offers a thorough **insight** into the **blockchain landscape**. From the nuances of individual tokens to the vast **expanses** of blockchains, our platform ensures **clarity**, **authenticity**, and **thoroughness**. Whether you're an analyst, an investor, a developer, or a blockchain enthusiast, our On-Chain offerings provide the detailed insights and data required for your unique needs. Navigate the blockchain world with confidence, backed by our data-centric approach.\n\nYou can read more about [our on-chain data coverage and use cases on our on-chain data product page](https://ccdata.io/data/on-chain-data)."},{"x-id":"asset","name":"Asset","x-summary-seo":"Asset endpoints provide access to data about specific assets, such as cryptocurrencies, tokens, stablecoins, tokenzied stocks, real world assets (RWAs) or other digital assets. These endpoints can be used to retrieve information about the asset, including its identifier, symbol, name, description, and other metadata.","x-icon":"sitemap","x-expanded":true,"x-endpoint-groups":[{"x-id":"asset_v2_metadata_group","x-name":"Metadata","paths":["/asset/v2/metadata"]},{"x-id":"asset_v1_top_list","x-name":"Top List","paths":["/asset/v1/top/list","/asset/v1/top/list/consensus-mechanism","/asset/v1/top/list/hashing-algorithm-type","/asset/v1/top/list/smart-contract-support-type"]},{"x-id":"asset_v1_search_group","x-name":"Search","paths":["/asset/v1/search"]},{"x-id":"asset_v1_summary_list","x-name":"Summary List","paths":["/asset/v1/summary/list"]},{"x-id":"asset_v1_events","x-name":"Events","paths":["/asset/v1/events"]},{"x-id":"asset_v1_historical_social","x-name":"Historical Social","paths":["/asset/v1/historical/code-repository/days","/asset/v1/historical/discord/days","/asset/v1/historical/reddit/days","/asset/v1/historical/telegram/days","/asset/v1/historical/twitter/days"]}],"description":"The **Asset endpoints** are built to grant you an in-depth view into specific assets, encompassing **cryptocurrencies**, **tokens**, **stablecoins**, **tokenzied stocks**, **[real world assets (RWAs)](https://blog.ccdata.io/understanding-tokenised-real-world-assets-the-next-step-for-digital-assets-d01caf01f01a)** and other forms of **digital assets**. Drawing from verified sources and extensive research, our interface ensures users can effortlessly gather and comprehend digital asset data without facing inconsistent data structures.\n\nA distinguishing attribute of our **Asset data offering** is its capability to deliver detailed asset metadata. This functionality assures users are well-informed about crucial asset characteristics, including **identifier**, **symbol**, **name**, **description**, **logo**, and **other relevant metadata**. To further enrich user understanding, our Asset endpoints delve deeper by offering insights about the asset's **classification**, clearly distinguishing if it's a **blockchain asset**, **token**, **fiat**, **stock**, **index**, **commodity** or **fund**. Add to this the capability to provide intricate details on the **supported blockchain platforms** for a particular asset, and users find themselves equipped with a thorough understanding of their assets of interest.\n\nWhether one is delving into the complex realm of digital assets, conducting research, making informed investment decisions, or simply expanding their knowledge base, our **Asset Metadata** endpoint is the ultimate destination for detailed and up-to-date asset information.\n\nOur **Social Metrics Historical** endpoints provide hourly and daily metrics to offer a pulse on the digital community's sentiment and activities. This includes:\n\n- **Code Repositories Metrics**: Track the evolution and activity of your favorite digital asset codebases (GitHub, Bitbucket).\n- **Subreddits Metrics**: Determine the real-time and historical popularity of specific assets on Reddit.\n- **Discord and Telegram Group Metrics**: Determine the real-time and historical popularity of specific Discord and Telegram groups linked to specific digital assets.\n- **Twitter(X) Metrics**: Determine the real-time and historical popularity of notable Twitter(X) handles linked to specific assets.\n\nMoreover, users keen on trends and recognitions can explore our **Top Lists** endpoints. This encompasses lists curated by various market caps, volume types, launch dates, and asset classifications.\n\nFor those attentive to critical digital asset events, our **Asset Events** endpoint is indispensable. From **security incidents**, **hard forks**, **soft forks**, and **branding changes** to **supply burns** and **migrations**, our database is regularly updated, ensuring you're never caught off guard.\n\n## Key Features\n- **Extensive Asset Metadata**: Obtain comprehensive details about an asset, such as its identifier, symbol, name, description, and literally hundreds of other metadata values.\n- **Asset Classification**: Discern the nature of an asset by understanding whether it's a blockchain asset, token, fiat, stablecoin or any other type of asset. We also provide quick and easy access to other **ALTERNATIVE_ASSET_IDS** like the ISIN or the DTI of a specific asset.\n- **Information on Supported Blockchain Platforms**: Benefit from insights about the blockchain platforms that a particular asset is associated with or operates on.\n- **Social Metrics Historical Data**: Understand the pulse and trend of the digital community's activities.\n- **Top Lists**: A comprehensive view of assets ranked by various criteria.\n- **Event Updates**: Stay informed on critical occurrences in the digital asset world.\n\n## Use Cases\n- **Asset Analysis and Research**: Our Asset endpoints serve as an indispensable resource for researchers, analysts, and enthusiasts who aim for a deeper understanding of specific assets.\n- **Investment Due Diligence**: Equip yourself with all necessary asset metadata before making investment decisions or diversifying a portfolio.\n- **Integration into Asset Management Platforms**: Developers and organizations aiming to integrate genuine asset data into their systems can rely on our endpoints for authenticity and depth.\n- **Educational Insights**: For educators, students, or anyone keen to grasp the intricacies of digital assets, our platform provides an accurate and exhaustive knowledge repository.\n- **Regulatory and Compliance Checks**: With transparent and detailed asset information, compliance teams and monitoring bodies can ensure transparency and adherence to guidelines.\n- **Asset Tracking and Monitoring**: Asset managers and enthusiasts can stay updated on specific asset characteristics, ensuring they remain well-informed and aligned with their strategies.\n- **Community Engagement Analysis**: For brands and analysts looking to understand community sentiment and interaction patterns.\n- **Trend Monitoring**: For investors and enthusiasts keen on understanding the popularity and traction of specific assets.\n- **Event Preparedness**: For those who need to stay ahead and prepared for significant digital asset events.\n\nOur **combined offerings**, from **Asset endpoints** to **Social Metrics Historical endpoints**, are a testament to the **precision**, **depth**, and **user-centric design** we introduce to the digital asset industry. Regardless of your niche – be it an analyst, a digital asset enthusiast, a researcher, or an investor – our platform is curated to serve you with unmatched insights. Venture confidently into the digital landscape, knowing you're backed by our exhaustive data suite at every juncture."},{"x-id":"news","name":"News","x-summary-seo":"A set of endpoints that provide aggregated news for the digital asset industry.","x-icon":"newspaper-o","x-expanded":true,"x-endpoint-groups":[{"x-id":"news_v1_article_list","x-name":"Latest Articles","paths":["/news/v1/article/list"]},{"x-id":"news_v1_source_list","x-name":"Sources","paths":["/news/v1/source/list"]},{"x-id":"news_v1_category_list","x-name":"Categories","paths":["/news/v1/category/list"]},{"x-id":"news_v1_article_get","x-name":"Single Article","paths":["/news/v1/article/get"]},{"x-id":"news_v1_search_group","x-name":"Search","paths":["/news/v1/search"]}],"description":"Navigating the **fast-paced world of digital assets** requires **access** to the most recent and **reliable news**. We understand this need, which is why our platform does not merely stop at [Asset and Social Metrics](https://developers.cryptocompare.com/documentation/data-api/asset) endpoints but dives right into the heart of the industry's current affairs with our dedicated News endpoints.\n\nOur News endpoints offer a **consolidated** repository of **aggregated news** tailored for the digital asset industry. Our news endpoints allow you to remain on the **frontline** of any **new developments**, **unfolding trends**, and **noteworthy events** within the **digital assets** realm. Whether you're after market analysis, intricate details about regulatory shifts, or technological advancements, our categorized sections make it easy for you to pinpoint and digest the precise information you're after.\n\nTo add depth to this information, our **Sentiment Analysis** tools provide insight into the prevailing sentiments surrounding these **news pieces**. Whether an article brings bullish optimism or cautious skepticism, our tools distill the tone, allowing users to gauge the potential market reactions and make informed decisions. Using the latest AI tools at our disposal, we categorize news sentiment based on their specific impact in the digital asset sector.\n\n## Key Features\n\n- **Aggregated Cryptocurrency News**: Access articles and content from reputable sources, all brought together for your convenience.\n- **Topic Organization**: Delve into news categorized under market analysis, regulation, technology, and more, ensuring you quickly find the information you need.\n- **Real-time Updates**: With the dynamic nature of the digital asset industry, our endpoints ensure that you're always reading the most recent developments.\n- **Sentiment Analysis on News**: Understand the mood and sentiment behind every news piece, enabling a richer interpretation of the news context. We use GTP3.5 Turbo with the system message: 'You are a sentiment categorization engine for the cryptocurrency industry. Respond with only one of the following: NEUTRAL, POSITIVE, NEGATIVE' and the user prompt: 'Categorize the sentiment of the following text: {article title} {article body}'\n\n## Use Cases\n\n- **Market Analysis**: For investors and traders wanting insights into market movements and predictions.\n- **Regulatory Updates**: Essential for professionals and businesses to ensure they operate within legal frameworks.\n- **Technological Innovations**: Catering to tech enthusiasts and developers eager to stay at the cutting edge of blockchain and crypto technologies.\n- **Event Monitoring**: Remain updated on significant events, partnerships, and launches in the digital asset landscape.\n- **Sentiment-Driven Investment**: For investors aiming to gauge market sentiment and make sentiment-informed investment decisions.\n- **Education and Research**: Ideal for educators, students, and researchers aiming for a comprehensive understanding of ongoing trends.\n\nOur News endpoints are a reflection of our commitment to bringing **transparency**, **timeliness**, and **trustworthines**s into the digital asset news domain. Whether you're an investor tracking market sentiments, a researcher exploring emerging trends, or a crypto enthusiast wanting to stay informed, our news offerings promise a comprehensive and up-to-date overview of the industry. **Dive into the pulse of digital asset news, assured that our platform offers you the most reliable and encompassing news insights.**"},{"x-id":"overview","name":"Overview","x-summary-seo":"A set of endpoints that provide aggregated metrics data about the overall health of the digital asset industry offer access to a range of data points that can be used to measure the performance and vitality of the market.","x-icon":"table","x-expanded":true,"x-endpoint-groups":[{"x-id":"overview_v1_latest_marketcap_tick","x-name":"MktCap Latest Tick","paths":["/overview/v1/latest/marketcap/all/tick","/overview/v1/latest/marketcap/ftw/tick"]},{"x-id":"overview_v1_latest_marketcap_histo","x-name":"MktCap Historical OHLCV","paths":["/overview/v1/historical/marketcap/all/assets/days","/overview/v1/historical/marketcap/all/assets/hours","/overview/v1/historical/marketcap/ftw/assets/days","/overview/v1/historical/marketcap/ftw/assets/hours"]}],"description":"To truly understand the vast expanse and dynamic nature of the digital asset world, one needs a bird's-eye view. Our platform offers just that through its dedicated Overview Section. This isn't merely a cursory glance; it's an in-depth look into the overarching health, performance, and vitality of the entire digital asset industry.\n\nOur Overview endpoints are the go-to source for those seeking aggregated metrics data. With a few clicks, users can access multiple data points that not only chart the present state of the digital asset market but also help track its evolution over time. Whether you're interested in understanding the cumulative market capitalization of all digital assets, gauging the total trade volumes, or diving into myriad other metrics, our endpoints have it all.\n\n## Key Features\n\n- **Aggregated Metrics Data**: Enjoy a comprehensive view of various data points, painting a holistic picture of the digital asset market.\n- **Total Market Capitalization**: Track the combined value of all digital assets.\n- **Trade Volumes**: Understand the magnitude of trades occurring within the market.\n- **Health Indicators**: Delve into metrics that signify the overall health and vitality of the industry.\n\n## Use Cases\n\n- **Market Overview**: Essential for investors, traders, and enthusiasts to get a summarized view of the digital asset landscape.\n- **Trend Analysis**: For analysts and researchers keen on studying market trends and predicting future trajectories.\n- **Investment Strategy Formation**: Helps investors understand the broader market context when formulating investment strategies.\n- **Education and Research**: A goldmine for educators and students aiming to understand the macroscopic aspects of the digital asset domain.\n- **Reporting and Documentation**: For professionals and businesses that require a consolidated view of the market for reports or presentations.\n\nOur **Overview endpoints** are a a testament of our commitment to ensuring that every user, whether a seasoned professional or a curious newcomer, gets a **clear** and **comprehensive understanding** of the digital asset landscape. With a rich array of metrics at your disposal, navigating and interpreting the digital asset industry becomes intuitive and enlightening. Step into the world of **digital assets** armed with insights that provide both **breadth** and **depth**, ensuring you're always several steps ahead."},{"x-id":"utilities","name":"Utilities","x-summary-seo":"A set of endpoints that provide auxiliary or support functions for the main API. These endpoints provide metadata, specifications, and utility services that help users and developers interact with the API more efficiently and effectively.","x-icon":"wrench","x-expanded":true,"x-endpoint-groups":[{"x-id":"admin_v2_rate_limit","x-name":"Rate Limit Verification","paths":["/admin/v2/rate/limit"]},{"x-id":"info_v1_version","x-name":"Version","paths":["/info/v1/version"]},{"x-id":"info_v1_openapi_group","x-name":"OpenAPI","paths":["/info/v1/openapi","/info/v1/openapi/endpoint"]}],"description":"The Utilities endpoints are your **toolkit for a seamless API experience**. While not adding any additional data sets, they offer essential metadata, specifications, and utility services that optimize your interaction with the REST API. Think of them as the behind-the-scenes heroes, ensuring efficient and effective API usage.\n\n## Key features\n\n- **Metadata & Specifications**: Details that improve clarity.\n- **Utility Services**: Tools to enhance user and developer engagement.\n- **Rate Limit Verification**: Monitor your API usage and avoid unexpected limits.\n\nWith our Utilities endpoints, navigating our API becomes intuitive and hassle-free, setting the stage for your main tasks."},{"x-id":"deprecated","name":"Deprecated","x-summary-seo":"The endpoints, parameters, or functionalities listed in this section are marked as deprecated","x-icon":"trash","x-expanded":false,"x-endpoint-groups":[{"x-id":"index_cc_v1_markets","x-name":"Markets (Indices & Ref. Rates)","paths":["/index/cc/v1/markets"]},{"x-id":"spot_v1_latest","x-name":"Latest Tick by Asset (Spot)","paths":["/spot/v1/latest/tick/asset"]},{"x-id":"spot_v1_markets","x-name":"Markets (Spot)","paths":["/spot/v1/markets"]},{"x-id":"futures_v1_markets","x-name":"Markets (Futures)","paths":["/futures/v1/markets"]},{"x-id":"options_v1_markets","x-name":"Markets (Options)","paths":["/options/v1/markets"]},{"x-id":"index_v1_markets","x-name":"Markets (Derivatives Indices)","paths":["/index/v1/markets"]},{"x-id":"v1_amm_historical_swap_message","x-name":"Swaps","paths":["/onchain/v1/amm/historical/swap-messages/hour","/onchain/v1/amm/historical/swap-messages"]},{"x-id":"onchain_v1_amm_markets","x-name":"Markets (On-Chain DEX)","paths":["/onchain/v1/amm/markets"]},{"x-id":"onchain_assets_by_chain_deprecated","x-name":"Assets By Chain","paths":["/onchain/v1/summary/by/chain","/onchain/v2/summary/by/chain"]},{"x-id":"onchain_data_by_address","x-name":"Asset By Address","paths":["/onchain/v1/data/by/address"]},{"x-id":"onchain_v1_historical_supply_days","x-name":"Historical Supply","paths":["/onchain/v1/historical/supply/days/by/symbol","/onchain/v1/historical/supply/days/by/id"]},{"x-id":"onchain_v1_block_last","x-name":"Latest Block","paths":["/onchain/v1/block/2/last","/onchain/v1/block/2/raw/last","/onchain/v1/block/8/last","/onchain/v1/block/8/raw/last","/onchain/v1/block/1/raw/last"]},{"x-id":"asset_v1_data","x-name":"Metadata","paths":["/asset/v1/metadata","/asset/v1/data/by/symbol","/asset/v1/data/by/id"]},{"x-id":"asset_v1_event","x-name":"Events","paths":["/asset/v1/events/by/id","/asset/v1/events/by/symbol"]},{"x-id":"asset_v1_historical_social","x-name":"Historical Social","paths":["/asset/v1/code/repository/days/by/id","/asset/v1/code/repository/days/by/symbol","/asset/v1/discord/days/by/id","/asset/v1/discord/days/by/symbol","/asset/v1/reddit/days/by/id","/asset/v1/reddit/days/by/symbol","/asset/v1/telegram/days/by/id","/asset/v1/telegram/days/by/symbol","/asset/v1/twitter/days/by/id","/asset/v1/twitter/days/by/symbol"]},{"x-id":"admin_v1_rate_limit","x-name":"Rate Limit Verification","paths":["/admin/v1/rate/limit"]}],"description":"The endpoints, parameters, or functionalities listed in this section are marked as deprecated. This means:\n\n- They are **no longer recommended** for use and may not be supported in future versions of our API.\n- Existing implementations that use these may continue to work, but we **cannot guarantee their long-term reliability**.\n- We **strongly recommend migrating** to the suggested alternatives as soon as possible to ensure compatibility and access to new features.\n\nAs our API evolves, we aim to provide more robust, efficient, and useful features. This sometimes requires retiring older functionalities to make room for better approaches. Deprecation decisions are based on:\n\n- **Performance Enhancements**: Newer alternatives might be faster or more resource-efficient.\n- **Feature Improvements**: Deprecated features may lack newer capabilities.\n- **Consistency and Standards**: Aligning with modern practices or industry standards.\n- **Simplified Maintenance**: Reducing complexities that arise from supporting outdated functionalities.\n\n## Deprecation and Removal Process\n\nOur commitment to innovation means we sometimes need to retire old functionalities. Here's how we ensure a smooth transition:\n\n- **Announcement**: When an endpoint, parameter, or functionality is identified for deprecation, we'll mark it as such in our documentation and notify users through email and other communication channels.\n- **Support Period**: Deprecated features will continue to be supported for a period to allow users ample time for migration. This period will be specified, but expect at least several months to a few years.\n- **Deprecation Header Notification**: To assist developers in identifying deprecated endpoints programmatically, we include a Deprecation HTTP response header in the responses from deprecated endpoints. This header will have a value of true, indicating that the endpoint is deprecated. If a new version of the endpoint is available, we will also include a Link header pointing to the new version. Developers are encouraged to check for these headers and plan their migrations accordingly.\nWhen deprecating /admin/v1/rate/limit in favor of /admin/v2/rate/limit, where we've changed the response format and added types to each object for improved clarity and functionality, the headers in the response would look like:\n```\nDeprecation: true\nLink: </admin/v2/rate/limit>; rel=\"successor-version\"\n```\n- **Removal Checks**: After the support period, we'll monitor the use of these deprecated features. As long as they are still actively used, they won't be removed.\n- **Final Notification**: If, after several checks, we find that usage has dwindled or become minimal, we'll send a final removal notification. Users will receive another grace period, potentially up to multiple years, before the feature is fully removed.\n- **Deletion**: After the final grace period, and if no significant usage is detected, the deprecated functionality will be permanently removed from our API.\n\n**Important Advisory on Deprecated Endpoints**: While we are dedicated to promoting a decentralized ecosystem and enhancing user accessibility (occasionally allowing IP rate limits on some endpoints), it's crucial to note that endpoints will switch to api_key-only access six months after their deprecation date. For those already utilizing an api_key, this change will have no impact, and they should focus on migrating to the new endpoints. This shift is designed to uphold the integrity and reliability of our service offerings. If you are currently relying on deprecated endpoints, we strongly recommend either integrating an api_key within this six-month timeframe or migrating to the new version to ensure continuous, uninterrupted access to the data you require.\n\n## Migration Tips\n\n- **Monitor Deprecated Features**: Regularly check this section during API updates to ensure you're not relying on deprecated features.\n- **Plan Early**: Begin your migration as soon as possible. Even though deprecated features remain functional for a time, they may be removed in the future. We assure you that we won't remove endpoints as long as they are still being used. We'll reach out via email and other means to existing customers using deprecated endpoints and provide plenty of time (multiple years) for them to switch to the new endpoints.\n- **Utilize the Deprecation Header**: Make sure your applications check for the Deprecation HTTP response header to programmatically identify deprecated endpoints and receive deprecation dates and alternative endpoints via the Link header.\n- **Seek Support**: If you face any issues during migration, please reach out to our support team. We're here to help.\n\nNavigating the ever-evolving landscape of technology can be challenging, but it's an integral part of continuous improvement and innovation. Deprecating certain functionalities in our API is a testament to our commitment to offering only the best, most efficient, and reliable tools for our users. We understand the potential inconveniences this might cause, and we deeply appreciate your adaptability during these changes. By staying informed and proactive, you position yourself at the forefront of the digital curve, reaping the benefits of our latest offerings. Should you encounter any **challenges along the way**, remember we're just a slack message (for enterprise customers) or [support ticket](https://support.ccdata.io/hc/en-gb/requests/new) away. Together, we'll shape the future of seamless digital interactions."}]}