var CCC = CCC || {}; CCC.API = CCC.API || {}; CCC.API.FIELDS = { "Price": { "ShowOnFrontEnd": true, "Icon": "usd", "Expanded": false, "Name": "Price (inc. CCCAGG)", "DocumentationType": "REST", "SubCatgeories": { "SingleSymbolPriceEndpoint": { "Name": "Single Symbol Price", "Simple": "https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD,JPY,EUR", "NewUntil": "2015-01-01", "Info": { "Description": "

Get the current price of any cryptocurrency in any other currency that you need.

If the crypto does not trade directly into the toSymbol requested, BTC will be used for conversion. If the opposite pair trades we invert it (e.g. BTC-XMR)

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 500, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "relaxedValidation", "type": "boolean", "required": false, "defaultVal": true, "description": "Setting this to true will make sure you don't get an error on non trading pairs, they will just be filtered out of the response." }, { "name": "e", "type": "string", "required": false, "defaultVal": "cccagg_or_exchange", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested tsyms as properties. Invalid tsyms will not return errors, they will just not be part of the response. An invalid fsym will return an error.", "SubTypes": { "(1..*)": { "Type": "number", "Description": "The price of the valid requested fsym-tsym pairs. The key is the requested tsym." } } }, "Examples": [ "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=BTC,USD,EUR", "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=BTC,USD,EUR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=XMR,ETH,ZEC&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=XMR,REP,ZEC&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD,EUR&e=Coinbase&extraParams=your_app_name" ], "CacheDuration": "10 seconds" } }, "multipleSymbolsPriceEndpoint": { "Name": "Multiple Symbols Price", "Simple": "https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR", "NewUntil": "2015-01-01", "Info": { "Description": "

Same as single API path but with multiple from symbols.

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 300, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 100, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "relaxedValidation", "type": "boolean", "required": false, "defaultVal": true, "description": "Setting this to true will make sure you don't get an error on non trading pairs, they will just be filtered out of the response." }, { "name": "e", "type": "string", "required": false, "defaultVal": "cccagg_or_exchange", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested fsyms as keys and the requested tsyms as properties of the keys. Invalid tsyms will not return errors, they will just not be part of the response. Invalid fsyms will not return an error, they will just not be part of the response.", "SubTypes": { "(1..*)": { "Type": "object", "Description": "This represents the valid requested fsyms, each as a separate key.", "SubTypes": { "(1..*)": { "Type": "number", "Description": "The price of the valid requested fsym-tsym pairs. The fsym is found in the key above this one, the key is the tsym." } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/pricemulti?fsyms=ETH,DASH&tsyms=BTC,USD,EUR", "https://min-api.cryptocompare.com/data/pricemulti?fsyms=ETH,DASH&tsyms=BTC,USD,EUR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricemulti?fsyms=REP,BTC&tsyms=USD,XMR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD&e=Coinbase&extraParams=your_app_name" ], "CacheDuration": "10 seconds" } }, "multipleSymbolsFullPriceEndpoint": { "Name": "Multiple Symbols Full Data", "Simple": "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTC&tsyms=USD,EUR", "NewUntil": "2015-01-01", "Info": { "Description": "

Get all the current trading info (price, vol, open, high, low etc) of any list of cryptocurrencies in any other currency that you need. If the crypto does not trade directly into the toSymbol requested, BTC will be used for conversion.

This API also returns Display values for all the fields. If the opposite pair trades we invert it (e.g. BTC-XMR)

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 1000, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 100, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "relaxedValidation", "type": "boolean", "required": false, "defaultVal": true, "description": "Setting this to true will make sure you don't get an error on non trading pairs, they will just be filtered out of the response." }, { "name": "e", "type": "string", "required": false, "defaultVal": "cccagg_or_exchange", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH,DASH&tsyms=BTC,USD,EUR", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH,DASH&tsyms=BTC,USD,EUR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=REP,BTC&tsyms=USD,XMR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=BTC,ETH&tsyms=USD&e=Coinbase&extraParams=your_app_name" ], "CacheDuration": "10 seconds" } }, "generateAverageEndpoint": { "Name": "Generate Custom Average", "Simple": "https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken", "NewUntil": "2015-01-01", "Info": { "Description": "

Compute the current trading info (price, vol, open, high, low etc) of the requested pair as a volume weighted average based on the exchanges requested.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": true, "minLen": 2, "maxLen": 150, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "allowedValues": [ true ], "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Coinbase,Bitfinex", "https://min-api.cryptocompare.com/data/generateAvg?fsym=ETH&tsym=BTC&e=Poloniex,Kraken,Coinbase,HitBTC&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/generateAvg?fsym=ZEC&tsym=USD&e=Poloniex,Bitfinex&extraParams=your_app_name" ], "CacheDuration": "10 seconds" } } } }, "Historical": { "ShowOnFrontEnd": true, "Icon": "calendar", "Expanded": false, "Name": "Historical (inc. CCCAGG)", "DocumentationType": "REST", "SubCatgeories": { "dataHistoday": { "Name": "Daily Pair OHLCV", "Simple": "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get open, high, low, close, volumefrom and volumeto from the daily historical data. The values are based on 00:00 GMT time. If e=CCCAGG and tryConversion=true, it attempts conversion through BTC or ETH to determine the best possible path. The conversion type and symbol used are appended per historical point. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "allData", "type": "boolean", "required": false, "defaultVal": false, "description": "Returns all data (only available on histo day)" }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "explainPath", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, each point calculated will return the available options it used to make the calculation path decision. This is intended for calculation verification purposes, please note that manually recalculating the returned data point values from this data may not match exactly, this is due to levels of caching in some circumstances." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested tsyms as properties. Invalid tsyms will not return errors, they will just not be part of the response. An invalid fsym will return an error.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "This object contains the full data set as well as some general information about that data set.", "SubTypes": { "Aggregated": { "Type": "boolean", "Description": "Whether or not each data point represents an aggregation of multiple days." }, "TimeFrom": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data set." }, "TimeTo": { "Type": "epoch timestamp", "Description": "The unix timestamp for the end of this data set." }, "Data": { "Type": "array", "Description": "An array of objects, each containing price and volume data of the requested pair for the specified time period (as dictated by the ‘aggregate’ parameter).", "SubTypes": { "time": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data point." }, "high": { "Type": "float", "Description": "The highest price of the requested pair during this period of time." }, "low": { "Type": "float", "Description": "The lowest price of the requested pair during this period of time." }, "open": { "Type": "float", "Description": "The price of the requested pair at the start of this period of time." }, "volumefrom": { "Type": "float", "Description": "The total amount of the base currency traded into the quote currency during this period of time (in units of the base currency)." }, "volumeto": { "Type": "float", "Description": "The total amount of the quote currency traded into the base currency during this period of time (in units of the quote currency)." }, "close": { "Type": "float", "Description": "The price of the requested pair at the end of this period of time." }, "conversionType": { "Type": "string", "Description": "Whether a conversion had to be used where a direct market wasn’t available and which type of conversion was used. You can learn more about conversion types here: https://blog.cryptocompare.com/historical-data-api-update-4ee44c549a8f" }, "conversionSymbol": { "Type": "string", "Description": "Which currency was used for the conversion path (BTC or ETH)." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=30&aggregate=3&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=ETH&tsym=USD&limit=30&aggregate=3&e=Kraken&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=ETH&tsym=BTC&limit=30&aggregate=1&toTs=1452680400&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=ETH&limit=30&aggregate=1&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=XRP&tsym=GBP&limit=30&aggregate=1&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=GBP&tsym=ETH&limit=30&aggregate=1&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=XRP&tsym=REP&limit=30&aggregate=1&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=USD&tsym=ICN&limit=30&aggregate=1&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histoday?fsym=GBP&tsym=USD&limit=30&aggregate=1&e=CCCAGG" ], "CacheDuration": "610 seconds" } }, "dataHistohour": { "Name": "Hourly Pair OHLCV", "Simple": "https://min-api.cryptocompare.com/data/v2/histohour?fsym=BTC&tsym=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get open, high, low, close, volumefrom and volumeto from the hourly historical data. If e=CCCAGG and tryConversion=true, it attempts conversion through BTC or ETH to determine the best possible path. The conversion type and symbol used are appended per historical point. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs parameter. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "info": "If set to false, it will try to get values without using any conversion at all", "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 168, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "explainPath", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, each point calculated will return the available options it used to make the calculation path decision. This is intended for calculation verification purposes, please note that manually recalculating the returned data point values from this data may not match exactly, this is due to levels of caching in some circumstances." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested tsyms as properties. Invalid tsyms will not return errors, they will just not be part of the response. An invalid fsym will return an error.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "This object contains the full data set as well as some general information about that data set.", "SubTypes": { "Aggregated": { "Type": "boolean", "Description": "Whether or not each data point represents an aggregation of multiple days." }, "TimeFrom": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data set." }, "TimeTo": { "Type": "epoch timestamp", "Description": "The unix timestamp for the end of this data set." }, "Data": { "Type": "array", "Description": "An array of objects, each containing price and volume data of the requested pair for the specified time period (as dictated by the ‘aggregate’ parameter).", "SubTypes": { "time": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data point." }, "high": { "Type": "float", "Description": "The highest price of the requested pair during this period of time." }, "low": { "Type": "float", "Description": "The lowest price of the requested pair during this period of time." }, "open": { "Type": "float", "Description": "The price of the requested pair at the start of this period of time." }, "volumefrom": { "Type": "float", "Description": "The total amount of the base currency traded into the quote currency during this period of time (in units of the base currency)." }, "volumeto": { "Type": "float", "Description": "The total amount of the quote currency traded into the base currency during this period of time (in units of the quote currency)." }, "close": { "Type": "float", "Description": "The price of the requested pair at the end of this period of time." }, "conversionType": { "Type": "string", "Description": "Whether a conversion had to be used where a direct market wasn’t available and which type of conversion was used. You can learn more about conversion types here: https://blog.cryptocompare.com/historical-data-api-update-4ee44c549a8f" }, "conversionSymbol": { "Type": "string", "Description": "Which currency was used for the conversion path (BTC or ETH)." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/v2/histohour?fsym=XMR&tsym=USD&limit=24&aggregate=3&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histohour?fsym=ETH&tsym=USD&limit=24&aggregate=3&e=Kraken&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histohour?fsym=ETH&tsym=BTC&limit=24&aggregate=1&toTs=1452680400&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histohour?fsym=BTC&tsym=ETH&limit=30&aggregate=1&e=CCCAGG" ], "CacheDuration": "610 seconds" } }, "dataHistominute": { "Name": "Minute Pair OHLCV", "Simple": "https://min-api.cryptocompare.com/data/v2/histominute?fsym=BTC&tsym=GBP&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get open, high, low, close, volumefrom and volumeto from the each minute historical data. This data is only stored for 7 days, if you need more, use the hourly or daily path.If e=CCCAGG and tryConversion=true, it attempts conversion through BTC or ETH to determine the best possible path. The conversion type and symbol used are appended per historical point. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "info": "If set to false, it will try to get values without using any conversion at all", "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 1440, "minValue": 1, "maxValue": 2000, "info": "We only store minute data for 7 days, any info before that will be wrong.", "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidationMinute", "ValidateAndCapToHitTimestamp" ], "secondsInUnit": 60, "cacheLength": 40, "maxUnits": 2000, "unit": "minute", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "explainPath", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, each point calculated will return the available options it used to make the calculation path decision. This is intended for calculation verification purposes, please note that manually recalculating the returned data point values from this data may not match exactly, this is due to levels of caching in some circumstances." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested tsyms as properties. Invalid tsyms will not return errors, they will just not be part of the response. An invalid fsym will return an error.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "This object contains the full data set as well as some general information about that data set.", "SubTypes": { "Aggregated": { "Type": "boolean", "Description": "Whether or not each data point represents an aggregation of multiple days." }, "TimeFrom": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data set." }, "TimeTo": { "Type": "epoch timestamp", "Description": "The unix timestamp for the end of this data set." }, "Data": { "Type": "array", "Description": "An array of objects, each containing price and volume data of the requested pair for the specified time period (as dictated by the ‘aggregate’ parameter).", "SubTypes": { "time": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data point." }, "high": { "Type": "float", "Description": "The highest price of the requested pair during this period of time." }, "low": { "Type": "float", "Description": "The lowest price of the requested pair during this period of time." }, "open": { "Type": "float", "Description": "The price of the requested pair at the start of this period of time." }, "volumefrom": { "Type": "float", "Description": "The total amount of the base currency traded into the quote currency during this period of time (in units of the base currency)." }, "volumeto": { "Type": "float", "Description": "The total amount of the quote currency traded into the base currency during this period of time (in units of the quote currency)." }, "close": { "Type": "float", "Description": "The price of the requested pair at the end of this period of time." }, "conversionType": { "Type": "string", "Description": "Whether a conversion had to be used where a direct market wasn’t available and which type of conversion was used. You can learn more about conversion types here: https://blog.cryptocompare.com/historical-data-api-update-4ee44c549a8f" }, "conversionSymbol": { "Type": "string", "Description": "Which currency was used for the conversion path (BTC or ETH)." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/v2/histominute?fsym=ZEC&tsym=USD&limit=60&aggregate=3&e=CCCAGG", "https://min-api.cryptocompare.com/data/v2/histominute?fsym=ETH&tsym=USD&limit=60&aggregate=3&e=Kraken&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histominute?fsym=ETH&tsym=BTC&limit=60&aggregate=1&toTs=1713759224&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/v2/histominute?fsym=BTC&tsym=ETH&limit=30&aggregate=1&e=CCCAGG" ], "CacheDuration": "40 seconds" } }, "dailyMarketClose": { "Name": "Day All Pairs OHLCV (CSV)", "Simple": "https://min-api.cryptocompare.com/data/daily/market/close", "NewUntil": "2015-01-01", "Info": { "Description": "

Only available for enterprise clients (see pricing page if you want to find out more).

Daily market close for all coin pairs across all markets as a CSV file. If you pass any date that is today or in the future the API defaults to yesterday. We populate the data at 1:30 am GMT for the previous day.You can test it buy trying https://min-api.cryptocompare.com/data/daily/market/close?date=2019-07-21

", "Parameters": [ { "name": "date", "type": "string", "defaultVal": "", "required": false, "description": "Returns csv data at the beginning of the day for this date. You can pass in any date in the format YYYY-MM-DD." } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/daily/market/close?date=2019-07-21" ], "CacheDuration": "120 seconds" } }, "DailyHistoMinute": { "Name": "Minute Pair OHLCV (CSV)", "Simple": "https://min-api.cryptocompare.com/data/histo/minute/daily?fsym=BTC&tsym=USD&date=2019-07-21", "NewUntil": "2015-01-01", "Info": { "Description": "

Only available for enterprise clients (see pricing page if you want to find out more).

Get historical open, high, low, close, volumefrom and volumeto for each minute for a exchange and coin pair on an specific day as a CSV file. If you pass any date that is today or in the future the API defaults to yesterday. You can test it by trying https://min-api.cryptocompare.com/data/histo/minute/daily?e=CCCAGG&fsym=BTC&tsym=GBP&date=2019-07-21

For a list of exchange/pair start time availability, please use the endpoint All the Exchanges and Trading Pairs
For a list of CCCAGG/pair start time availability, please use the endpoint Display CCCAGG Constituent Pairs

", "Parameters": [ { "name": "e", "type": "string", "defaultVal": "CCCAGG", "minLen": 1, "maxLen": 30, "extraValidation": [ "MarketExistsOrEmpty" ], "description": "The exchange to obtain data from" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRoot" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInTradePairsOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "The currency symbol to convert into" }, { "name": "date", "type": "string", "defaultVal": "", "required": false, "description": "Returns csv data for this date. You can pass in any date in the format YYYY-MM-DD." } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/histo/minute/daily?e=CCCAGG&fsym=ETH&tsym=USD&date=2019-07-21" ], "CacheDuration": "120 seconds" } }, "dataPriceHistorical": { "Name": "Day Pair OHLCV by TS", "Simple": "https://min-api.cryptocompare.com/data/pricehistorical?fsym=BTC&tsyms=USD&ts=1452680400", "NewUntil": "2015-01-01", "Info": { "Description": "

Get the price of any cryptocurrency in any other currency that you need at a given timestamp. The price comes from the daily info - so it would be the price at the end of the day GMT based on the requested TS.

If the crypto does not trade directly into the toSymbol requested, BTC or ETH will be used for conversion. Tries to get direct trading pair data, if there is none or it is more than 10 days before the ts requested, it uses BTC or ETH conversion. If the opposite pair trades we invert it (e.g. BTC-XMR)

The calculation types are:

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInTradePairsOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "ts", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "roundDownTs" ], "secondsInUnit": 86400, "cacheLength": 600, "unit": "day", "description": "The unix timestamp of interest" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketInPairsMarketList" ], "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "calculationType", "type": "string", "required": false, "defaultVal": "Close", "minLen": 2, "maxLen": 30, "extraValidation": [ "PriceHistoricalCalculationType" ], "description": "Type of average to calculate (Close - a Close of the day close price, MidHighLow - the average between the 24 H high and low, VolFVolT - the total volume to / the total volume from)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested fsyms as keys and the requested tsyms as properties of the keys. Invalid tsyms will not return errors, they will just not be part of the response. Invalid fsyms will not return an error, they will just not be part of the response.", "SubTypes": { "fsym": { "Type": "object", "Description": "This represents the requested fsym as a key.", "SubTypes": { "(1…*)": { "Type": "number", "Description": "The price of the valid requested fsym-tsym pairs. The fsym is found in the key above this one, the key is the tsym." } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/pricehistorical?fsym=BTC&tsyms=USD,EUR&ts=1452680400", "https://min-api.cryptocompare.com/data/pricehistorical?fsym=ETH&tsyms=BTC,USD,EUR&ts=1452680400&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricehistorical?fsym=DASH&tsyms=ZEC&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricehistorical?fsym=XMR&tsyms=ZEC,EUR&ts=1452680400&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/pricehistorical?fsym=BTC&tsyms=USD,EUR&e=Coinbase&ts=1452680400&extraParams=your_app_name" ], "CacheDuration": "600 seconds" } }, "dataPriceHistoricalDayAvg": { "Name": "Day Pair OHLCV (Hourly VWAP) by TS", "Simple": "https://min-api.cryptocompare.com/data/dayAvg?fsym=BTC&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get day average price. The values are based on hourly vwap data and the average can be calculated in different ways. It uses BTC conversion if data is not available because the coin is not trading in the specified currency. If tryConversion is set to false it will give you the direct data. If no toTS is given it will automatically do the current day. Also for different timezones use the UTCHourDiff param

The calculation types are:

", "Parameters": [ { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "info": "If set to false, it will try to get values without using any conversion at all", "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "baseKey": "fsym", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "avgType", "type": "string", "required": false, "defaultVal": "HourVWAP", "minLen": 2, "maxLen": 30, "extraValidation": [ "AverageType" ], "description": "Type of average to calculate (HourVWAP - a HourVWAP of hourly price, MidHighLow - the average between the 24 H high and low, VolFVolT - the total volume to / the total volume from)" }, { "name": "UTCHourDiff", "type": "int", "required": false, "defaultVal": 0, "minValue": -12, "maxValue": 14, "description": "By default it does UTC, if you want a different time zone just pass the hour difference. For PST you would pass -8 for example." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "DayAvgTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/dayAvg?fsym=BTC&tsym=USD&UTCHourDiff=-8&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=ETH&tsym=GBP&toTs=1487116800&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=ETH&tsym=GBP&toTs=1487116800&tryConversion=false&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=ETH&tsym=GBP&toTs=1487116800&avgType=MidHighLow&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=ETH&tsym=GBP&toTs=1487116800&avgType=MidHighLow&tryConversion=false&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=ETH&tsym=GBP&toTs=1487116800&avgType=VolFVolT&tryConversion=false&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/dayAvg?fsym=BTC&tsym=USD&toTs=1487116800&e=Bitfinex&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataExchangeHistoday": { "Name": "Daily Exchange Vol.", "Simple": "https://min-api.cryptocompare.com/data/exchange/histoday?tsym=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get total volume from the daily historical exchange data. The values are based on 00:00 GMT time. We store the data in BTC and we multiply by the BTC-tsym value. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketExists" ], "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/histoday?e=LocalBitcoins&tsym=USD&limit=100&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/exchange/histoday?e=Coinbase&tsym=BTC&limit=100&aggregate=10&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataExchangeHistoHour": { "Name": "Hourly Exchange Vol.", "Simple": "https://min-api.cryptocompare.com/data/exchange/histohour?tsym=BTC&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get total volume from the hourly historical exchange data. We store the data in BTC and we multiply by the BTC-tsym value. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketExists" ], "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 168, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/histohour?e=Coinbase&tsym=USD&limit=24&aggregate=3", "https://min-api.cryptocompare.com/data/exchange/histohour?e=Poloniex&tsym=USD&limit=24&aggregate=3&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/exchange/histohour?e=Coinbase&tsym=BTC&limit=24&aggregate=1&toTs=1452680400&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataSymbolHistoday": { "Name": "Daily Symbol Vol.", "Simple": "https://min-api.cryptocompare.com/data/symbol/histoday?fsym=BTC&tsym=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get total volumes from the daily historical symbol volume data. The volumes are stored in fsym (base) and are converted using the matching historical fsym - tsym conversion rates. For example if you are asking for the fsym BTC and tsym USD, the volume returned is the total BTC that was part of all trades (base and quote) converted using the BTC-USD exchange rate

The value is based on 00:00 GMT time and is calculated as the sum of all trades where the symbol/asset was involved either as the from/base or as the to/quote/counter. The top_tier_volume_quote and base are totals based on exchanges included in our exchange benchmark that are ranked as AA, A or B. cccagg_volume_quote and _base are based on the exchanges included in our CCCAGG average. total_volume_quote and _base are the sum of all trades across all markets where the asset/coin was either the fsym/base or the tsym/quote/counter

If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/symbol/histoday?fsym=ETH&tsym=USD&limit=100&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/symbol/histoday?fsym=BTC&tsym=USD&limit=100&aggregate=10&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataSymbolHistohour": { "Name": "Hourly Symbol Vol.", "Simple": "https://min-api.cryptocompare.com/data/symbol/histohour?fsym=BTC&tsym=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Get total volumes from the hourly historical symbol volume data. The volumes are stored in fsym (base) and are converted using the matching historical fsym - tsym conversion rates. For example if you are asking for the fsym BTC and tsym USD, the volume returned is the total BTC that was part of all trades (base and quote) converted using the BTC-USD exchange rate

The value is based on hourly time and is calculated as the sum of all trades where the symbol/asset was involved either as the from/base or as the to/quote/counter. The top_tier_volume_quote and base are the totals based on exchanges included in our exchange benchmark that are ranked as AA, A or B. cccagg_volume_quote and _base are based on the exchanges included in our CCCAGG average. total_volume_quote and _base are the sum of all trades across all markets where the asset/coin was either the fsym/base or the tsym/quote/counter

If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/symbol/histohour?fsym=ETH&tsym=USD&limit=100&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/symbol/histohour?fsym=BTC&tsym=USD&limit=100&aggregate=10&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataExchangeSymbolHistoday": { "Name": "Daily Symbol Vol. Single Exchange", "Simple": "https://min-api.cryptocompare.com/data/exchange/symbol/histoday?fsym=BTC&tsym=USD&limit=10&e=Binance", "NewUntil": "2015-01-01", "Info": { "Description": "

Get the daily from and to volume for a symbol on an exchange.

The value is based on 00:00 GMT time and is calculated as the sum of all trades where the symbol/asset was involved either as the from/base or as the to/quote/counter on the requested exchange.

If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketExists" ], "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 168, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/symbol/histoday?e=Coinbase&fsym=BTC&tsym=USD&limit=24&aggregate=3", "https://min-api.cryptocompare.com/data/exchange/symbol/histoday?e=Poloniex&fsym=BTC&tsym=USD&limit=24&aggregate=3&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/exchange/symbol/histoday?e=Coinbase&fsym=BTC&tsym=BTC&limit=24&aggregate=1&toTs=1452680400&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } }, "dataExchangeSymbolHistohour": { "Name": "Hourly Symbol Vol. Single Exchange", "Simple": "https://min-api.cryptocompare.com/data/exchange/symbol/histohour?fsym=BTC&tsym=USD&limit=10&e=Binance", "NewUntil": "2015-01-01", "Info": { "Description": "

Get the hourly from and to volume for a symbol on an exchange.

The value is based on hourly time and is calculated as the sum of all trades where the symbol/asset was involved either as the from/base or as the to/quote/counter on the requested exchange.

If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketExists" ], "description": "The exchange to obtain data from" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 168, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/symbol/histohour?e=Coinbase&fsym=BTC&tsym=USD&limit=24&aggregate=3", "https://min-api.cryptocompare.com/data/exchange/symbol/histohour?e=Poloniex&fsym=BTC&tsym=USD&limit=24&aggregate=3&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/exchange/symbol/histohour?e=Coinbase&fsym=BTC&tsym=BTC&limit=24&aggregate=1&toTs=1452680400&extraParams=your_app_name" ], "CacheDuration": "610 seconds" } } } }, "Blockchain": { "ShowOnFrontEnd": true, "Icon": "th-large", "Expanded": false, "Name": "Blockchain Data", "DocumentationType": "REST", "SubCatgeories": { "blockchainListOfCoins": { "Name": "Available Coin List", "Simple": "https://min-api.cryptocompare.com/data/blockchain/list", "NewUntil": "2015-01-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets.


You can only use this endpoint with a valid api_key. Returns a list of all coins for which we currently get blockchain data from

IntoTheBlock.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with blockchain data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "Contains an object with additional data for each asset", "SubTypes": { "Coin Name(1...*)": { "Type": "object", "Description": "Object for the specified asset which includes some general information.", "SubTypes": { "id": { "Type": "string", "Description": "A unique code used to identify that asset." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "partner_symbol": { "Type": "string", "Description": "The symbol used by IntoTheBlock for this asset." }, "data_available_from": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating the start date for this assets data." } } } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/list" ], "CacheDuration": "120 seconds" } }, "blockchainLatest": { "Name": "Latest", "Simple": "https://min-api.cryptocompare.com/data/blockchain/latest?fsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets. Full description of the return fields available here


You can only use this endpoint with a valid api_key. Retrieve the latest aggregated blockchain snapshot for the requested coin.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with blockchain data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "Contains an array element for each day requested.", "SubTypes": { "id": { "Type": "string", "Description": "Unique code used to identify that asset." }, "time": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating when the most recent data was received." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "partner_symbol": { "Type": "string", "Description": "The symbol used by IntoTheBlock for this asset." }, "zero_balance_addresses_all_time": { "Type": "int", "Description": "Sum of zero balance addresses since inception." }, "unique_addresses_all_time": { "Type": "int", "Description": "The sum of addresses that executed at least one transaction since." }, "new_addresses": { "Type": "int", "Description": "The sum of addresses that were created that day." }, "active_addresses": { "Type": "int", "Description": "The sum of addresses that executed at least one transaction during the day" }, "average_transaction_value": { "Type": "float", "Description": "Average transaction value denominated in the native units of the digital asset per day." }, "block_height": { "Type": "int", "Description": "Block height represents the max block number for the given day." }, "hashrate": { "Type": "float", "Description": "The hash rate for a day is the average difficulty / the average time between blocks for the day / 10^12. It is expressed in TH/s (1,000,000,000,000 (one trillion) hashes per second)." }, "difficulty": { "Type": "float", "Description": "The mean difficulty of finding a hash that meets the protocol-designated requirement (e.g. for bitcoin it is the the difficulty of finding a new block) that day." }, "block_time": { "Type": "float", "Description": "Average time in seconds it took for each block to be created that day." }, "block_size": { "Type": "float", "Description": "The average size in bytes of all blocks created that day." }, "current_supply": { "Type": "int", "Description": "The total amount of that asset currently available." }, "transaction_count": { "Type": "int", "Description": "Count of valid transactions for that day, after filtering out failed transactions." }, "transaction_count_all_time": { "Type": "int", "Description": "Count of transactions since inception." }, "large_transaction_count": { "Type": "int", "Description": "Count of large (>100,000 USD) transactions per day." } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/latest?fsym=BTC", "https://min-api.cryptocompare.com/data/blockchain/latest?fsym=ETH" ], "CacheDuration": "10 seconds" } }, "blockchainDay": { "Name": "Historical Daily", "Simple": "https://min-api.cryptocompare.com/data/blockchain/histo/day?fsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets. Full description of the return fields available here


You can only use this endpoint with a valid api_key. Retrieve the daily aggregated blockchain data for the requested coin, back through time for the number of points as specifed by the limit. Timestamp values are based on 00:00 GMT time.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with blockchain data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "Contains an object with additional data for each asset", "SubTypes": { "Coin Name(1...*)": { "Type": "object", "Description": "Object for the specified asset which includes some general information.", "(1...*)": { "Type": "object", "Description": "Contains an object with historical data for each asset.", "SubTypes": { "id": { "Type": "int", "Description": "A unique code used to identify that asset." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "time": { "Type": "epoch timestamp", "Description": "Unix timetamp indicating when the most recent data was received." }, "zero_balance_addresses_all_time": { "Type": "int", "Description": "Sum of zero balance addresses since inception." }, "unique_addresses_all_time": { "Type": "int", "Description": "The sum of addresses that executed at least one transaction since inception." }, "new_addresses": { "Type": "int", "Description": "The sum of addresses that were created that day." }, "active_addresses": { "Type": "int", "Description": "The sum of addresses that executed at least one transaction during the day." }, "transaction_count": { "Type": "int", "Description": "Count of valid transactions for that day, after filtering out failed transactions." }, "transaction_count_all_time": { "Type": "int", "Description": "Count of transactions since inception." }, "large_transaction_count": { "Type": "int", "Description": "Count of large transactions since inception." }, "average_transaction_value": { "Type": "float", "Description": " Average transaction value denominated in the native units of the digital asset per day." }, "block_height": { "Type": "int", "Description": "Block height represents the max block number for the given day." }, "hashrate": { "Type": "float", "Description": "The hash rate for a day is the average difficulty / the average time between blocks for the day / 10 ^ 12. It is expressed in TH / s(1,000,000,000,000(one trillion) hashes per second)." }, "difficulty": { "Type": "float", "Description": "The mean difficulty of finding a hash that meets the protocol - designated requirement(e.g.for bitcoin it is the the difficulty of finding a new block) that day." }, "block_time": { "Type": "float", "Description": "Average time in seconds it took for each block to be created that day." }, "block_size": { "Type": "float", "Description": "The average size in bytes of all blocks created that day." }, "current_supply": { "Type": "int", "Description": "The total amount of that asset currently available." } } } } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/histo/day?fsym=BTC", "https://min-api.cryptocompare.com/data/blockchain/histo/day?fsym=ETH&limit=10" ], "CacheDuration": "610 seconds" } }, "balanceDistributionLatest": { "Name": "Balance Distribution Latest", "Simple": "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/latest?fsym=BTC", "NewUntil": "2021-12-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets.
Retrieves the latest balance distribution for a specified asset.
Only data for BTC (Bitcoin) is currently available.

You can only use this endpoint with a valid api_key. Retrieve the latest aggregated blockchain snapshot for the requested coin.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with balance distribution data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "Contains an array element for each day requested.", "SubTypes": { "id": { "Type": "string", "Description": "Unique code used to identify that asset." }, "time": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating when the most recent data was received." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "partner_symbol": { "Type": "string", "Description": "The symbol used by IntoTheBlock for this asset." }, "balance_distribution": { "Type": "array", "Description": "An array of objects, each containing ranges of asset balance totals, with number of addresses in that range and the total volume of that range", "SubTypes": { "from": { "Type": "float", "Description": "The lowest starting quantity value for this balance range" }, "to": { "Type": "float", "Description": "The highest ending quantity value for this balance range" }, "totalVolume": { "Type": "float", "Description": "The total volume for this balance range" }, "addressesCount": { "Type": "float", "Description": "The total number of addresses in this balance range" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/latest?fsym=BTC", "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/latest?fsym=ETH" ], "CacheDuration": "10 seconds" } }, "balanceDistributionDay": { "Name": "Balance Distribution Daily", "Simple": "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/histo/day?fsym=BTC", "NewUntil": "2021-12-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets.
Retrieves the balance distribution for a specified asset over a specified time range at a daily interval.
Only data for BTC (Bitcoin) is currently available.

You can only use this endpoint with a valid api_key. Retrieve the daily wallet balance distribution data for the requested coin, back through time for the number of points as specifed by the limit. Timestamp values are based on 00:00 GMT time.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with balance distribution data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "Contains an array of objects with data for each time point", "SubTypes": { "(1...*)": { "Type": "array", "SubTypes": { "id": { "Type": "string", "Description": "Unique code used to identify that asset." }, "time": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating when the most recent data was received." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "partner_symbol": { "Type": "string", "Description": "The symbol used by IntoTheBlock for this asset." }, "balance_distribution": { "Type": "array", "Description": "An array of objects, each containing ranges of asset balance totals, with number of addresses in that range and the total volume of that range", "SubTypes": { "from": { "Type": "float", "Description": "The lowest starting quantity value for this balance range" }, "to": { "Type": "float", "Description": "The highest ending quantity value for this balance range" }, "totalVolume": { "Type": "float", "Description": "The total volume for this balance range" }, "addressesCount": { "Type": "float", "Description": "The total number of addresses in this balance range" } } } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/histo/day?fsym=BTC", "https://min-api.cryptocompare.com/data/blockchain/balancedistribution/histo/day?fsym=ETH&limit=10" ], "CacheDuration": "610 seconds" } }, "dataStakingRateLatest": { "Name": "Staking Rate Latest", "Simple": "https://min-api.cryptocompare.com/data/blockchain/staking/latest", "NewUntil": "2015-01-01", "Info": { "Description": "

The Ether staking rate is powered by Attestant, a company dedicated to the business of staking. They provide a non-custodial Ethereum 2 managed staking service, giving customers the ability to stake their Ether using Attestant’s infrastructure while always retaining full control of their assets.


You can only use this endpoint with a valid api_key. The Ether rate is generally updated daily at 11:00 am UTC for the previous day.", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "ETH", "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest", "allowedValues": [ "ETH" ] }, { "name": "provider", "type": "string", "required": false, "defaultVal": "attestant", "minLen": 1, "maxLen": 30, "transform": "Lowercase", "description": "The data provider for the staking rate.", "allowedValues": [ "attestant" ] }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the latest data for the asset and provider requested.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "An object, containing rate and notes data of the requested asset.", "SubTypes": { "rate": { "Type": "float", "Description": "The latest staking rate of the requested asset." }, "issued_ts": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating when the rate was calculated." }, "issued_date": { "Type": "string", "Description": "The date when the rate was calculated in ISO 8601 date standard." }, "notes": { "Type": "array", "Description": "An array of strings containing notes for the latest rate." } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/staking/latest?fsym=ETH&provider=attestant" ], "CacheDuration": "600 seconds" } }, "dataStakingRateHistoricalDay": { "Name": "Staking Rate Historical Day", "Simple": "https://min-api.cryptocompare.com/data/blockchain/staking/histoday", "NewUntil": "2015-01-01", "Info": { "Description": "

The Ether staking rate is powered by Attestant, a company dedicated to the business of staking. They provide a non-custodial Ethereum 2 managed staking service, giving customers the ability to stake their Ether using Attestant’s infrastructure while always retaining full control of their assets.


You can only use this endpoint with a valid api_key. The Ether rate is generally updated daily at 11:00 am UTC for the previous day.", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "ETH", "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest", "allowedValues": [ "ETH" ] }, { "name": "provider", "type": "string", "required": false, "defaultVal": "attestant", "minLen": 1, "maxLen": 30, "transform": "Lowercase", "description": "The data provider for the staking rate.", "allowedValues": [ "attestant" ] }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "minValue": 1606780800, "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the availabe historical data points for the asset and provider requested.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "This object contains the full data set as well as some general information about that data set.", "SubTypes": { "TimeFrom": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data set. If we do not have any data for the requested time period, the start and the end will be 0." }, "TimeTo": { "Type": "epoch timestamp", "Description": "The unix timestamp for the end of this data set. If we do not have any data for the requested time period, the start and the end will be 0." }, "Data": { "Type": "array", "Description": "An array of objects, each containing rate and notes data of the requested asset for the specified time period.", "SubTypes": { "time": { "Type": "epoch timestamp", "Description": "The unix timestamp for the start of this data point" }, "rate": { "Type": "float", "Description": "The staking rate of the requested asset during this time period." }, "issued_ts": { "Type": "epoch timestamp", "Description": "Unix timestamp indicating when the rate was calculated." }, "issued_date": { "Type": "string", "Description": "The date when the rate was calculated in ISO 8601 date standard." }, "notes": { "Type": "array", "Description": "An array of strings containing notes for this time period." } } } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/staking/histoday?fsym=ETH&provider=attestant" ], "CacheDuration": "600 seconds" } }, "dataBlockchainMiningCalculator": { "Name": "Mining Calculator Data", "Simple": "https://min-api.cryptocompare.com/data/blockchain/mining/calculator?fsyms=BTC,ETH,ZEC&tsyms=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get the price, the total supply, the hash rate, the block reward and the block time. Based on these values you can calculate the profitability of a mining rig.

", "Parameters": [ { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 300, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 100, "transform": "Uppercase", "eliminateDuplicates": true, "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "cccagg_or_exchange", "showFrontend": false, "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "relaxedValidation", "type": "boolean", "required": false, "defaultVal": true, "showFrontend": false, "description": "Setting this to true will make sure you don't get an error on non trading pairs, they will just be filtered out of the response." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested fsyms as properties. Each of them has a blockhain data and a price data field.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "Some general information about the coin.", "SubTypes": { "(1…*)": { "Type": "object", "Description": "This represents the requested fsym as a key.", "SubTypes": { "CoinInfo": { "Type": "object", "Description": "The blockchain data needed for the mining calculator. For mined coins the values are: block time, block reward, hash rate, total coins mined.", "SubTypes": { "Id": { "Type": "int", "Description": "The unique identifier for this coin." }, "Name": { "Type": "string", "Description": "The external shortened/symbol name of the coin." }, "FullName": { "Type": "string", "Description": "The full name of the coin." }, "Internal": { "Type": "string", "Description": "The internal shortened/symbol name of the coin." }, "ImageUrl": { "Type": "string", "Description": "Cryptocompare hosted image for that coins logo." }, "Url": { "Type": "string", "Description": "URL extension to find the coin on cryptocompare.com" }, "NetHashesPerSecond": { "Type": "number", "Description": "Total hashes per second this blockhain has." }, "BlockTime": { "Type": "number", "Description": "Seconds it takes for a block to be mined." }, "BlockReward": { "Type": "number", "Description": "The number of assets rewarded for mining a block." }, "TotalCoinsMined": { "Type": "number", "Description": "The current supply of a specific asset." }, "AssetLaunchDate": { "Type": "string", "Description": "The date this asset was first released in yyyy-mm-dd format." }, "MaxSupply": { "Type": "string", "Description": "The maximum supply of a specific asset." } } }, "Price": { "Type": "object", "Description": "An object with all the requested tsyms as properties.", "SubTypes": { "(1…*)": { "Type": "number", "Description": "The price of the valid requested fsym-tsym pairs. The fsym is found in the key two levels above this one above this one, the key is the tsym." } } } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/blockchain/mining/calculator?fsyms=ETH,DASH&tsyms=BTC,USD,EUR", "https://min-api.cryptocompare.com/data/blockchain/mining/calculator?fsyms=ETH,DASH&tsyms=BTC,USD,EUR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/blockchain/mining/calculator?fsyms=REP,BTC&tsyms=USD,XMR&extraParams=your_app_name", "https://min-api.cryptocompare.com/data/blockchain/mining/calculator?fsyms=BTC,ETH&tsyms=USD&e=Coinbase&extraParams=your_app_name" ], "CacheDuration": "60 seconds" } } } }, "TradingSignals": { "ShowOnFrontEnd": true, "Icon": "exchange", "Expanded": false, "Name": "Trading Signals", "DocumentationType": "REST", "SubCatgeories": { "tradingSignalsIntoTheBlockLatest": { "Name": "Trading Signals Latest", "Simple": "https://min-api.cryptocompare.com/data/tradingsignals/intotheblock/latest?fsym=BTC", "NewUntil": "2020-04-01", "Info": { "Description": "

Powered by IntoTheBlock, an intelligence company that leverages machine learning and advanced statistics to extract intelligent signals for crypto-assets.


You can only use this endpoint with a valid api_key. Retrieve the latest trading signal information for the requested coin.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 10, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response contains all the available coins with blockchain data as properties within the Data object.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "Contains an object with additional data for each asset.", "SubTypes": { "id": { "Type": "string", "Description": "A unique code used to identify that asset." }, "time": { "Type": "epoch timestamp", "Description": "Unix timetamp indicating when the most recent data was received." }, "symbol": { "Type": "string", "Description": "The symbol used by Crypto Compare for this asset." }, "partner_symbol": { "Type": "string", "Description": "The symbol used by IntoTheBlock for this asset." }, "inOutVar": { "Type": "object", "Description": "This momentum signal calculates the net change of in/out of the money addresses, if the number of \"In the Money\" addresses is increasing this would be a bullish signal. In the money means addresses that would make a profit on the tokens they hold because they acquired the tokens at a lower price.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "float", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "float", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "float", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "float", "Description": "Scores above this threshold are considered bullish." } } }, "largetxsVar": { "Type": "object", "Description": " Momentum signal that is bullish when the short term trend of the number of txs > $100k is greater than the long term average.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "float", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "float", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "float", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "float", "Description": "Scores above this threshold are considered bullish." } }, "addressesNetGrowth": { "Type": "object", "Description": "Momentum signal that gives an indication of the tokens underlying network health by measuring the amount of new addresses minus the addresses that have their balances emptied. It is bullish when more addresses are being created than emptied.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "string", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "string", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "string", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "string", "Description": "Scores above this threshold are considered bullish." } } }, "score_threshold_bullish": { "Type": "float", "Description": "Scores below this threshold are considered bearish.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "string", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "string", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "string", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "string", "Description": "Scores above this threshold are considered bullish." } } } }, "addressesNetGrowth": { "Type": "object", "Description": "Momentum signal that gives an indication of the tokens underlying network health by measuring the amount of new addresses minus the addresses that have their balances emptied. It is bullish when more addresses are being created than emptied.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "string", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "string", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "string", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "string", "Description": "Scores above this threshold are considered bullish." } } }, "concentrationVar": { "Type": "object", "Description": "The Concentration signal is based on the accumulation (bullish) or reduction (bearish) of addresses with more than 0.1% of the circulating supply.", "SubTypes": { "category": { "Type": "string", "Description": "The type of asset requested." }, "sentiment": { "Type": "string", "Description": "Latest sentiment for the asset, either bullish, bearish or neutral." }, "value": { "Type": "string", "Description": "The value is specific to each signal, e.g. for addressesNetGrowth signal the value represents the ratio between the number of addresses today and yesterday." }, "score": { "Type": "string", "Description": "Score is a number between 0 and 1 that normalises ‘value’ based on bullish and bearish thresholds which are defined for each signal and asset." }, "score_threshold_bearish": { "Type": "string", "Description": "Scores below this threshold are considered bearish." }, "score_threshold_bullish": { "Type": "string", "Description": "Scores above this threshold are considered bullish." } } } } }, "RateLimit": { "Type": "object", "Description": "If rate limits have been reached this object provides call statistics for multiple time periods. This object is empty if you have not reached any of the limits.", "SubTypes": { "calls_made": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Calls made in the current second" }, "minute": { "Type": "int", "Description": "Calls made in the current minute" }, "hour": { "Type": "int", "Description": "Calls made in the current hour" }, "day": { "Type": "int", "Description": "Calls made in the current day" }, "month": { "Type": "int", "Description": "Calls made in the current month" }, "total_calls": { "Type": "int", "Description": "All calls from this account/ip" } } }, "max_calls": { "Type": "object", "Description": "The Number of calls for the specified time period", "SubTypes": { "second": { "Type": "int", "Description": "Maximum number of calls per second" }, "minute": { "Type": "int", "Description": "Maximum number of calls per minute" }, "hour": { "Type": "int", "Description": "Maximum number of calls per hour" }, "day": { "Type": "int", "Description": "Maximum number of calls per day" }, "month": { "Type": "int", "Description": "Maximum number of calls per month" } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/tradingsignals/intotheblock/latest?fsym=BTC", "https://min-api.cryptocompare.com/data/tradingsignals/intotheblock/latest?fsym=ETH" ], "CacheDuration": "10 seconds" } } } }, "PairMapping": { "ShowOnFrontEnd": true, "Icon": "arrows-h", "Expanded": false, "Name": "Pair Mapping", "DocumentationType": "REST", "SubCatgeories": { "pairMappingMappedSymbolEndpoint": { "Name": "Mapping - From Symbol", "Simple": "https://min-api.cryptocompare.com/data/v2/pair/mapping/fsym?fsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns the current pair mapping by mapped symbol.

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "BTC", "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/pair/mapping/fsym?fsym=BTC&extraParams=YourSite" ], "CacheDuration": "3600 seconds" } }, "pairMappingExchangeEndpoint": { "Name": "Mapping - Exchange", "Simple": "https://min-api.cryptocompare.com/data/v2/pair/mapping/exchange?e=Kraken", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns the current pair mapping by exchange. If no exchange is passed in the e parameter, you will get an object with all the exchanges, otherwise you get an array with mapping object for that specific exchange

", "Parameters": [ { "name": "e", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "extraValidation": [ "MarketExistsOrEmpty" ], "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/pair/mapping/exchange?extraParams=YourSite", "https://min-api.cryptocompare.com/data/v2/pair/mapping/exchange?e=Kraken&extraParams=YourSite" ], "CacheDuration": "3600 seconds" } }, "pairMappingExchangeSymbolEndpoint": { "Name": "Mapping - Exchange From Symbol", "Simple": "https://min-api.cryptocompare.com/data/v2/pair/mapping/exchange/fsym?exchangeFsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns the current pair mapping by exchange symbol.

", "Parameters": [ { "name": "exchangeFsym", "type": "string", "required": false, "defaultVal": "BTC", "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The symbol as it trades on the exchange" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/pair/mapping/exchange/fsym?exchangeFsym=XBT&extraParams=YourSite" ], "CacheDuration": "3600 seconds" } }, "plannedPairRemappingEndpoint": { "Name": "Planned Pair Mapping Updates", "Simple": "https://min-api.cryptocompare.com/data/pair/mapping/planned/updates", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all planned pair re-mapping events.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/pair/mapping/planned/updates?extraParams=YourSite" ], "CacheDuration": "86400 seconds" } } } }, "Toplists": { "ShowOnFrontEnd": true, "Icon": "list-ol", "Expanded": false, "Name": "Toplists", "DocumentationType": "REST", "SubCatgeories": { "TopTotalVolumeEndpointFull": { "Name": "Toplist by 24H Volume Full Data", "Simple": "https://min-api.cryptocompare.com/data/top/totalvolfull?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their total volume across all markets in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "allowedValues": [ "CCCAGG" ], "showFrontend": false, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "allowedValues": [ true ], "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/totalvolfull?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/totalvolfull?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "topTotalTopTierVolumeEndpointFull": { "Name": "Toplist by 24H Top Tier Volume Full Data", "Simple": "https://min-api.cryptocompare.com/data/top/totaltoptiervolfull?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their total top tier volume based on the top 20 markets in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "allowedValues": [ "CCCAGG" ], "showFrontend": false, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "allowedValues": [ true ], "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/totaltoptiervolfull?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/totaltoptiervolfull?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "TopTotalMktCapEndpointFull": { "Name": "Toplist by Market Cap Full Data", "Simple": "https://min-api.cryptocompare.com/data/top/mktcapfull?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their market cap. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "allowedValues": [ "CCCAGG" ], "showFrontend": false, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "allowedValues": [ true ], "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/mktcapfull?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/mktcapfull?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "topExchangesEndpoint": { "Name": "Top Exchanges Volume Data by Pair", "Simple": "https://min-api.cryptocompare.com/data/top/exchanges?fsym=BTC&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get top exchanges by volume for a currency pair. The number of exchanges you get is the minimum of the limit you set (default 5) and the total number of exchanges available

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRoot" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInTradePairsOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "The currency symbol to convert into" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 5, "minValue": 1, "maxValue": 50, "enforceMax": true, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/exchanges?fsym=ETH&tsym=USD", "https://min-api.cryptocompare.com/data/top/exchanges?fsym=BTC&tsym=USD&limit=20", "https://min-api.cryptocompare.com/data/top/exchanges?fsym=REP&tsym=ETH" ], "CacheDuration": "120 seconds" } }, "topExchangesFullEndpoint": { "Name": "Top Exchanges Full Data By Pair", "Simple": "https://min-api.cryptocompare.com/data/top/exchanges/full?fsym=BTC&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get top exchanges by volume for a currency pair plus the full CCCAGG data. The number of exchanges you get is the minimum of the limit you set (default 5) and the total number of exchanges available

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRoot" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInTradePairsOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "The currency symbol to convert into" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 5, "minValue": 1, "maxValue": 50, "enforceMax": true, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/exchanges/full?fsym=ETH&tsym=USD", "https://min-api.cryptocompare.com/data/top/exchanges/full?fsym=BTC&tsym=USD&limit=20", "https://min-api.cryptocompare.com/data/top/exchanges/full?fsym=REP&tsym=ETH" ], "CacheDuration": "120 seconds" } }, "topExchangesVolumes": { "Name": "Toplist by Pair Volume", "Simple": "https://min-api.cryptocompare.com/data/top/volumes?tsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Get top coins by volume for the to currency. It returns volume24hto and total supply (where available). The number of coins you get is the minimum of the limit you set (default 50) and the total number of coins available

", "Parameters": [ { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 20, "minValue": 1, "maxValue": 1000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/volumes?tsym=ETH", "https://min-api.cryptocompare.com/data/top/volumes?tsym=BTC&limit=100", "https://min-api.cryptocompare.com/data/top/volumes?tsym=USD&limit=20" ], "CacheDuration": "120 seconds" } }, "topPairsEndpoint": { "Name": "Toplist of Trading Pairs", "Simple": "https://min-api.cryptocompare.com/data/top/pairs?fsym=BTC", "NewUntil": "2015-01-01", "Info": { "Description": "

Get top pairs by volume for a currency (always uses our aggregated data). The number of pairs you get is the minimum of the limit you set (default 5) and the total number of pairs available

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRoot" ], "description": "The cryptocurrency symbol of interest" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 5, "minValue": 1, "maxValue": 50, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/pairs?fsym=ETH", "https://min-api.cryptocompare.com/data/top/pairs?fsym=BTC&limit=20", "https://min-api.cryptocompare.com/data/top/pairs?fsym=ZEC&limit=20" ], "CacheDuration": "120 seconds" } }, "exchangeSymbolsByVolumeEndpoint": { "Name": "Exchange Top Symbols By Volume", "Simple": "https://min-api.cryptocompare.com/data/exchange/top/volume?e=Binance&direction=TO", "NewUntil": "2015-01-01", "Info": { "Description": "

Top to or from assets on a specific exchange.

", "Parameters": [ { "name": "e", "type": "string", "required": true, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The exchange to obtain data from" }, { "name": "direction", "type": "string", "required": false, "defaultVal": "TO", "minLen": 1, "maxLen": 2000, "description": "The trade direction (to or from)", "transform": "Uppercase" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 5, "minValue": 1, "maxValue": 100, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/top/volume?e=Binance" ], "CacheDuration": "120 seconds" } } } }, "Social": { "ShowOnFrontEnd": true, "Icon": "comments", "Expanded": false, "Name": "Social Data", "DocumentationType": "REST", "SubCatgeories": { "latestCoinSocialStats": { "Name": "Latest Coin Social Stats Data", "Simple": "https://min-api.cryptocompare.com/data/social/coin/latest", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns latest social stats data for the coin requested

", "Parameters": [ { "name": "coinId", "type": "int", "required": false, "defaultVal": 1182, "extraValidation": [ "CoinIdIsValid" ], "description": "The id of the coin you want data for." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all social stats properties of the requested coin id.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "object", "Description": "Some general information about the coin.", "SubTypes": { "General": { "Type": "object", "Description": "Some general information about the coin", "SubTypes": { "Points": { "Type": "int", "Description": "Total points score for this coin. Points are awarded for different metrics on each social media platform." }, "Name": { "Type": "string", "Description": "The shortened/symbol name of the coin." }, "CoinName": { "Type": "string", "Description": "The full name of the coin." }, "Type": { "Type": "string", "Description": "The cryptopcompare internal page type (coin or exchange)." } } }, "CryptoCompare": { "Type": "object", "Description": "CryptoCompare points are awarded as follows: 25 for a post, 10 for a comment and 25 for a follower.", "SubTypes": { "Points": { "Type": "int", "Description": "Total points score for this coin. Points are awarded for different metrics on each social media platform." }, "Followers": { "Type": "int", "Description": "the number of users following this coin." }, "Posts": { "Type": "int", "Description": "The number of posts on this coins page." }, "SimilarItems": { "Type": "array", "Description": "coins with similar attributes to the one requested.", "SubTypes": { "(1…*)": { "Type": "object", "Description": "Information on a similar coin.", "SubTypes": { "Id": { "Type": "int", "Description": "The unique identifier for this coin." }, "Name": { "Type": "string", "Description": "The shortened/symbol name of the coin." }, "FullName": { "Type": "string", "Description": "The full name of the coin." }, "ImageUrl": { "Type": "string", "Description": "Cryptocompare hosted image for that coins logo." }, "Url": { "Type": "string", "Description": "URL extension to find the coin on cryptocompare.com" }, "FollowingType": { "Type": "int", "Description": "For internal use by CryptoCompare, can be ignored" } } } } }, "Comments": { "Type": "int", "Description": "The total number of posts/replies on the coin’s page." }, "PageViewsSplit": { "Type": "object", "Description": "A breakdown of which areas of the CryptoCompare website users are viewing this coin from.", "SubTypes": { "Overview": { "Type": "int", "Description": "Numbers of views for the ‘Overview’ tab on this coin’s CryptoCompare." }, "Markets": { "Type": "int", "Description": "Numbers of views for the ‘Markets’ tab on this coin’s CryptoCompare page." }, "Analysis": { "Type": "int", "Description": "Number of views for the ‘Analysis’ tab on this coin’s CryptoCompare page." }, "Charts": { "Type": "int", "Description": "Number of views for the ‘Charts’ tab on this coin’s CryptoCompare page." }, "Trades": { "Type": "int", "Description": "Number of views for the ‘Trades’ tab on this coin’s CryptoCompare page." }, "Orderbook": { "Type": "int", "Description": "Number of views for the ‘Orders’ tab on this coin’s CryptoCompare page." }, "Forum": { "Type": "int", "Description": "Number of views for the ‘Forum’ tab on this coin’s CryptoCompare page." }, "Influence": { "Type": "int", "Description": "Number of views for the ‘Influence’ tab on this coin’s CryptoCompare page." }, "News": { "Type": "int", "Description": "Number of views for the ‘News’ tab on this coin’s CryptoCompare page." }, "Timeline": { "Type": "int", "Description": "Number of views for the ‘Timeline’ tab on this coin’s CryptoCompare page." } } }, "PageViews": { "Type": "int", "Description": "Total Number of page views for any tab on this coin’s Cryptocompare page." }, "CryptopianFollowers": { "Type": "array", "Description": "General information on the CryptoCompare users following this coin." } } }, "Twitter": { "Type": "int", "Description": "Stats and info regarding this coin’s Twitter account.", "SubTypes": { "Points": { "Type": "int", "Description": "Twitter points are awarded as follows: 0.1 for a follower, 5 for being part of a list and 0.001 for an status update." }, "account_creation": { "Type": "epoch timestamp", "Description": "The date (as a Unix timestamp) this coin’s official twitter account was created." }, "followers": { "Type": "int", "Description": "The number of followers for the requested coin’s Twitter account." }, "statuses": { "Type": "int", "Description": "The number of tweets posted by the requested coin’s Twitter account." }, "link": { "Type": "string", "Description": "The URL for the requested coin’s Twitter account." }, "lists": { "Type": "int", "Description": "The number of Twitter lists the request coin features in." }, "favourites": { "Type": "int", "Description": "The number of times this coin’s page has been favourited." }, "following": { "Type": "int", "Description": "The number of accounts this coin’s page is following." }, "name": { "Type": "string", "Description": "The coin’s Twitter account name." } } }, "Reddit": { "Type": "int", "Description": "Stats and info regarding this coin’s sub-reddit.", "SubTypes": { "Points": { "Type": "int", "Description": "Reddit points are awarded as follows: 1 for a subscriber, 2 for a comment per day and 3 for an active user." }, "posts_per_hour": { "Type": "float", "Description": "The average number of posts per hour in this coin’s sub-reddit." }, "comments_per_hour": { "Type": "float", "Description": "The average number of comments per hour in this coin’s sub-reddit." }, "comments_per_day": { "Type": "float", "Description": "The average number of comments per day in this coin’s sub-reddit." }, "active_users": { "Type": "int", "Description": "The number of ‘active users’ (as determined by Reddit) in currently in this coin’s sub-reddit." }, "link": { "Type": "string", "Description": "The URL for this coin’s sub-reddit." }, "community_creation": { "Type": "epoch timestamp", "Description": "The Unix timestamp for the date of the sub-reddits creation." }, "posts_per_day": { "Type": "float", "Description": "The average number of posts per day in this coin’s sub-reddit." }, "name": { "Type": "string", "Description": "This coin’s sub-reddit name." }, "subscribers": { "Type": "int", "Description": "The number of reddit users subscribed to this coin’s sub-reddit." } } }, "Facebook": { "Type": "int", "Description": "Total Number of page views for any tab on this coin’s Cryptocompare page.", "SubTypes": { "Points": { "Type": "int", "Description": "Facebook points are awarded as follows: 1 point for a like." }, "talking_about": { "Type": "int", "Description": "The current number of Facebook users ‘Talking About’ this coin (as determined by Facebook)." }, "is_closed": { "Type": "boolean", "Description": "Whether or not this coin’s page is closed." }, "likes": { "Type": "int", "Description": "The number of user who have ‘Liked’ this page on Facebook." }, "name": { "Type": "string", "Description": "The The full name of this coin’s page on Facebook." }, "link": { "Type": "epoch timestamp", "Description": "The URL for this coin’s Facebook page." } } }, "CodeRepository": { "Type": "object", "Description": "General stats and info regarding this coin’s code repository.", "SubTypes": { "List": { "Type": "array", "Description": "Set of objects representing different code repositories.", "SubTypes": { "(1…*)": { "Type": "object", "Description": "Code repository object.", "SubTypes": { "forks": { "Type": "int", "Description": "The number of forks coming from this repository." }, "last_update": { "Type": "epoch timestamp", "Description": "The Unix timestamp of the last update within this repository." }, "open_total_issues": { "Type": "int", "Description": "Total number of issues raised within this repository." }, "subscribers": { "Type": "int", "Description": "The number of users subscribed to this repository." }, "fork": { "Type": "int", "Description": "The number of forks splitting off from this repository." }, "closed_pull_issues": { "Type": "int", "Description": "Number of issues with a pull request that have been closed." }, "parent": { "Type": "object", "Description": "Information for the repository the coin’s code was cloned from.", "SubTypes": { "Name": { "Type": "string", "Description": "Parent repository’s name." }, "Url": { "Type": "string", "Description": "Link to the parent repository." }, "InternalId": { "Type": "string", "Description": "Link to the parent repository." }, "InternalData": { "Type": "object", "Description": "Details about the parent coin" } } }, "open_pull_issues": { "Type": "int", "Description": "Number of issues with a pull request currently waiting on approval." }, "stars": { "Type": "int", "Description": "The number of times this repository has been starred." }, "closed_issues": { "Type": "int", "Description": "The number of reported issues that have been resolved." }, "url": { "Type": "string", "Description": "The URL for this repository." }, "contributors": { "Type": "int", "Description": "The number of users contributing to this repository." }, "created_at": { "Type": "epoch timestamp", "Description": "The date (as a Unix timestamp) this repository was created." }, "open_issues": { "Type": "int", "Description": "The number of reported issues that are currently open." }, "source": { "Type": "object", "Description": "Information for the original repository the coin’s code was based on (i.e. where the Parent repository originated from).", "SubTypes": { "Name": { "Type": "string", "Description": "Source repository’s name." }, "Url": { "Type": "string", "Description": "Link to the source repository." }, "InternalId": { "Type": "string", "Description": "The cryptocompare ID for the Source coin." }, "InternalData": { "Type": "object", "Description": "Details about the parent coin" } } }, "closed_total_issues": { "Type": "int", "Description": "Number of issues closed" }, "size": { "Type": "int", "Description": "The total file size of the full repository." }, "last_push": { "Type": "epoch timestamp", "Description": "The Unix timestamp of the most recent code push." } } } } }, "points": { "Type": "int", "Description": "Code Repository points are awarded as follows: 1 for a star, 2 for a fork (somebody trying to create a copy coin or just play with the code) and 3 for each subscriber." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/social/coin/latest", "https://min-api.cryptocompare.com/data/social/coin/latest?coinId=7605" ], "CacheDuration": "600 seconds" } }, "historicalDaySocialStats": { "Name": "Historical Day Social Stats Data", "Simple": "https://min-api.cryptocompare.com/data/social/coin/histo/day", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns daily social stats data for the coin requested

", "Parameters": [ { "name": "coinId", "type": "int", "required": false, "defaultVal": 1182, "extraValidation": [ "CoinIdIsValid" ], "description": "The id of the coin you want data for." }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 600, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested days as an array with multiple properties.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "An array objects representing a day and it’s social data.", "SubTypes": { "(1…*)": { "Type": "object", "Description": "Object for social data that day.", "SubTypes": { "Time": { "Type": "epoch timestamp", "Description": "The Unix timestamp for the day." }, "Comments": { "Type": "int", "Description": "The total number of posts/replies on the coin’s page." }, "posts": { "Type": "int", "Description": "The number of posts on this coins page." }, "followers": { "Type": "int", "Description": "The number of users following this coin." }, "points": { "Type": "int", "Description": "Total points scored for this coin that day. Points are awarded for different metrics on each social media platform." }, "overview_page_views": { "Type": "int", "Description": "Numbers of views for the ‘Overview’ tab on this coin’s CryptoCompare page that day." }, "analysis_page_views": { "Type": "int", "Description": "Number of views for the ‘Analysis’ tab on this coin’s CryptoCompare page that day." }, "markets_page_views": { "Type": "int", "Description": "Numbers of views for the ‘Markets’ tab on this coin’s CryptoCompare page that day." }, "charts_page_views": { "Type": "int", "Description": "Number of views for the ‘Charts’ tab on this coin’s CryptoCompare page that day." }, "trades_page_views": { "Type": "int", "Description": "Number of views for the ‘Trades’ tab on this coin’s CryptoCompare page that day." }, "forum_page_views": { "Type": "int", "Description": "Number of views for the ‘Forum’ tab on this coin’s CryptoCompare page that day." }, "influence_page_views": { "Type": "int", "Description": "Number of views for the ‘Influence’ tab on this coin’s CryptoCompare page." }, "total_page_views": { "Type": "int", "Description": "Total Number of page views for any tab on this coin’s Cryptocompare page." }, "fb_likes": { "Type": "int", "Description": "The number of users who had ‘Liked’ this page on Facebook as of that day." }, "fb_talking_about": { "Type": "int", "Description": "The number of Facebook users ‘Talking About’ this coin (as determined by Facebook) that day." }, "twitter_followers": { "Type": "int", "Description": "The number of followers for the requested coin’s Twitter account as of that day." }, "twitter_lists": { "Type": "int", "Description": "The number of Twitter lists the request coin featured in as of that day." }, "twitter_favourites": { "Type": "int", "Description": "The number of times this coin’s page had been favourited as of that day." }, "twitter_statuses": { "Type": "int", "Description": "The number of tweets posted by the requested coin’s Twitter account as of that day." }, "reddit_subscribers": { "Type": "int", "Description": "The number of reddit users that subscribed to this coin’s sub-reddit as of that day." }, "reddit_active_users": { "Type": "int", "Description": "The number of ‘active users’ (as determined by Reddit) in this coin’s sub-reddit that day." }, "reddit_posts_per_hour": { "Type": "float", "Description": "The average number of posts per hour in this coin’s sub-reddit as of that day." }, "reddit_posts_per_day": { "Type": "float", "Description": "The average number of posts per day in this coin’s sub-reddit as of that day." }, "reddit_comments_per_hour": { "Type": "float", "Description": "The average number of comments per hour in this coin’s sub-reddit as of that day." }, "reddit_comments_per_day": { "Type": "float", "Description": "The number of times this repository had been starred as of that day." }, "code_repo_stars": { "Type": "int", "Description": "The number of times this repository had been starred as of that day." }, "code_repo_forks": { "Type": "int", "Description": "The number of forks splitting off from this repository as of that day." }, "code_repo_subscribers": { "Type": "int", "Description": "The number of users subscribed to this repository as of that day." }, "code_repo_open_pull_requests": { "Type": "int", "Description": "Number of issues with a pull request waiting on approval as of that day." }, "code_repo_closed_pull_issues": { "Type": "int", "Description": "Number of issues with a pull request that have been closed as of that day." }, "code_repo_open_issues": { "Type": "int", "Description": "Total number of open issues as of that day." }, "code_repo_closed_issues": { "Type": "int", "Description": "Total number of issues closed as of that day." }, "code_repo_contributors": { "Type": "int", "Description": "Total number of users who have contributed to this repo as of that day." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/social/coin/histo/day", "https://min-api.cryptocompare.com/data/social/coin/histo/day?coinId=7605&aggregate=2&limit=100&toTs=1543622400" ], "CacheDuration": "600 seconds" } }, "historicalHourSocialStats": { "Name": "Historical Hour Social Stats Data", "Simple": "https://min-api.cryptocompare.com/data/social/coin/histo/hour", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns hourly social stats data for the coin requested

", "Parameters": [ { "name": "coinId", "type": "int", "required": false, "defaultVal": 1182, "extraValidation": [ "CoinIdIsValid" ], "description": "The id of the coin you want data for." }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 30, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "aggregatePredictableTimePeriods", "type": "boolean", "required": false, "defaultVal": true, "description": "Only used when the aggregate param is also in use. If false it will aggregate based on the current time.If the param is false and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 9am, 11am, 1pm.If the param is false and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm.If the param is true (default) and the time you make the call is 1pm - 2pm, with aggregate 2, it will create the time slots: ... 8am, 10am, 12pm.If the param is true (default) and the time you make the call is 2pm - 3pm, with aggregate 2, it will create the time slots: ... 10am, 12am, 2pm." }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 600, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": { "Type": "object", "Description": "The response object contains all the requested hours as an array with multiple properties.", "SubTypes": { "Response": { "Type": "string", "Description": "This indicates whether the call succeeded or resulted in an error." }, "Message": { "Type": "string", "Description": "This returns details about any errors that may have occurred." }, "HasWarning": { "Type": "boolean", "Description": "This tells the user about any unusual issues that did not cause a full error." }, "Type": { "Type": "int", "Description": "Message type 100 indicates success, anything else indicates an error." }, "Data": { "Type": "array", "Description": "An array objects representing a day and it’s social data.", "SubTypes": { "(1…*)": { "Type": "object", "Description": "Object for social data that day.", "SubTypes": { "time": { "Type": "epoch timestamp", "Description": "The Unix timestamp for the day." }, "comments": { "Type": "int", "Description": "The total number of posts/replies on the coin’s page." }, "posts": { "Type": "int", "Description": "The number of posts on this coins page." }, "followers": { "Type": "int", "Description": "The number of users following this coin." }, "points": { "Type": "int", "Description": "Total points scored for this coin that day. Points are awarded for different metrics on each social media platform." }, "overview_page_views": { "Type": "int", "Description": "Numbers of views for the ‘Overview’ tab on this coin’s CryptoCompare page that day." }, "analysis_page_views": { "Type": "int", "Description": "Number of views for the ‘Analysis’ tab on this coin’s CryptoCompare page that day." }, "markets_page_views": { "Type": "int", "Description": "Numbers of views for the ‘Markets’ tab on this coin’s CryptoCompare page that day." }, "charts_page_views": { "Type": "int", "Description": "Number of views for the ‘Charts’ tab on this coin’s CryptoCompare page that day." }, "trades_page_views": { "Type": "int", "Description": "Number of views for the ‘Trades’ tab on this coin’s CryptoCompare page that day." }, "forum_page_views": { "Type": "int", "Description": "Number of views for the ‘Forum’ tab on this coin’s CryptoCompare page that day." }, "influence_page_views": { "Type": "int", "Description": "Number of views for the ‘Influence’ tab on this coin’s CryptoCompare page." }, "total_page_views": { "Type": "int", "Description": "Total Number of page views for any tab on this coin’s Cryptocompare page." }, "fb_likes": { "Type": "int", "Description": "The number of users who had ‘Liked’ this page on Facebook as of that day." }, "fb_talking_about": { "Type": "int", "Description": "The number of Facebook users ‘Talking About’ this coin (as determined by Facebook) that day." }, "twitter_followers": { "Type": "int", "Description": "The number of followers for the requested coin’s Twitter account as of that day." }, "twitter_lists": { "Type": "int", "Description": "The number of Twitter lists the request coin featured in as of that day." }, "twitter_favourites": { "Type": "int", "Description": "The number of times this coin’s page had been favourited as of that day." }, "twitter_statuses": { "Type": "int", "Description": "The number of tweets posted by the requested coin’s Twitter account as of that day." }, "reddit_subscribers": { "Type": "int", "Description": "The number of reddit users that subscribed to this coin’s sub-reddit as of that day." }, "reddit_active_users": { "Type": "int", "Description": "The number of ‘active users’ (as determined by Reddit) in this coin’s sub-reddit that day." }, "reddit_posts_per_hour": { "Type": "float", "Description": "The average number of posts per hour in this coin’s sub-reddit as of that day." }, "reddit_posts_per_day": { "Type": "float", "Description": "The average number of posts per day in this coin’s sub-reddit as of that day." }, "reddit_comments_per_hour": { "Type": "float", "Description": "The average number of comments per hour in this coin’s sub-reddit as of that day." }, "reddit_comments_per_day": { "Type": "float", "Description": "The number of times this repository had been starred as of that day." }, "code_repo_stars": { "Type": "int", "Description": "The number of times this repository had been starred as of that day." }, "code_repo_forks": { "Type": "int", "Description": "The number of forks splitting off from this repository as of that day." }, "code_repo_subscribers": { "Type": "int", "Description": "The number of users subscribed to this repository as of that day." }, "code_repo_open_pull_requests": { "Type": "int", "Description": "Number of issues with a pull request waiting on approval as of that day." }, "code_repo_closed_pull_issues": { "Type": "int", "Description": "Number of issues with a pull request that have been closed as of that day." }, "code_repo_open_issues": { "Type": "int", "Description": "Total number of open issues as of that day." }, "code_repo_closed_issues": { "Type": "int", "Description": "Total number of issues closed as of that day." }, "code_repo_contributors": { "Type": "int", "Description": "Total number of users who have contributed to this repo as of that day." } } } } } } }, "Examples": [ "https://min-api.cryptocompare.com/data/social/coin/histo/hour", "https://min-api.cryptocompare.com/data/social/coin/histo/hour?coinId=7605&aggregate=2&limit=100&toTs=1543622400" ], "CacheDuration": "600 seconds" } } } }, "News": { "ShowOnFrontEnd": true, "Icon": "file", "Expanded": false, "Name": "News", "DocumentationType": "REST", "SubCatgeories": { "latestNewsArticlesEndpoint": { "Name": "Latest News Articles", "Simple": "https://min-api.cryptocompare.com/data/v2/news/?lang=EN", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns news articles from the providers that CryptoCompare has integrated with.

", "Parameters": [ { "name": "feeds", "type": "string", "required": false, "maxLen": 1000, "defaultVal": "ALL_NEWS_FEEDS", "eliminateDuplicates": true, "description": "Specific news feeds to retrieve news from" }, { "name": "categories", "type": "string", "required": false, "maxLen": 1000, "defaultVal": "ALL_NEWS_CATEGORIES", "eliminateDuplicates": true, "description": "Category of news articles to return" }, { "name": "excludeCategories", "type": "string", "required": false, "maxLen": 1000, "defaultVal": "NO_EXCLUDED_NEWS_CATEGORIES", "eliminateDuplicates": true, "description": "News article categories to exclude from results" }, { "name": "lTs", "type": "timestamp", "required": false, "nowOrLess": true, "defaultVal": 0, "minValue": 0, "description": "Returns news before that timestamp" }, { "name": "lang", "type": "string", "required": false, "minLen": 1, "maxLen": 4, "defaultVal": "EN", "description": "Preferred language - English (EN), Portuguese (PT), Espanol (ES), Turkish (TR), French (FR)" }, { "name": "sortOrder", "type": "string", "required": false, "minLen": 1, "maxLen": 8, "defaultVal": "latest", "description": "The order to return news articles - latest or popular " }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/news/?feeds=cryptocompare,cointelegraph,coindesk&extraParams=YourSite", "https://min-api.cryptocompare.com/data/v2/news/?feeds=cryptocompare&lTs=1506478327&extraParams=YourSite", "https://min-api.cryptocompare.com/data/v2/news/?lang=PT&extraParams=YourSite", "https://min-api.cryptocompare.com/data/v2/news/?categories=BTC,ETH,regulation&extraParams=YourSite", "https://min-api.cryptocompare.com/data/v2/news/?categories=BTC,ETH&excludeCategories=Sponsored", "https://min-api.cryptocompare.com/data/v2/news/?categories=Technology,Blockchain&excludeCategories=Regulation,Mining" ], "CacheDuration": "120 seconds" } }, "ListNewsFeedsEndpoint": { "Name": "List News Feeds", "Simple": "https://min-api.cryptocompare.com/data/news/feeds", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the news feeds (providers) that CryptoCompare has integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/news/feeds?extraParams=YourSite" ], "CacheDuration": "120 seconds" } }, "newsArticleCategoriesEndpoint": { "Name": "News Article Categories", "Simple": "https://min-api.cryptocompare.com/data/news/categories", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns news articles categories, you can use them to filter news.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/news/categories" ], "CacheDuration": "120 seconds" } }, "newsFeedAndCategoriesEndpoint": { "Name": "List News Feeds and Categories", "Simple": "https://min-api.cryptocompare.com/data/news/feedsandcategories", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the news feeds (providers) that CryptoCompare has integrated with and the full list of categories.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/news/feedsandcategories?extraParams=YourSite" ], "CacheDuration": "120 seconds" } } } }, "Orderbook": { "ShowOnFrontEnd": true, "Icon": "table", "Expanded": false, "Name": "Order Book", "DocumentationType": "REST", "SubCatgeories": { "exchangesWithOrdebookStaticInfoEndpointV2": { "Name": "Exchanges With Order Book Data", "Simple": "https://min-api.cryptocompare.com/data/ob/exchanges", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns all the exchanges we have order book level 2 data for.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/ob/exchanges" ], "CacheDuration": "120 seconds" } }, "obL1TopEndpoint": { "Name": "Order Book L1 Top", "Simple": "https://min-api.cryptocompare.com/data/ob/l1/top?fsyms=BTC,ETH&tsyms=USD,EUR&e=coinbase", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key and correct permissions, please get in touch if you want to test it. . Returns latest order book Level 1 bid/ask values for the requested exchange and pairs in both raw and display formats.

", "Parameters": [ { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 1000, "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInGlobalInfo" ], "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 100, "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInAtLeastOneTradePairOrConversionSymbolTradePairs" ], "baseKey": "fsyms", "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "e", "type": "string", "required": true, "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketHasOrderbook", "MarketInPairsMarketList" ], "description": "The exchange to obtain data from" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/ob/l1/top?fsyms=BTC,ETH&tsyms=USD,EUR&e=coinbase" ], "CacheDuration": "10 seconds" } }, "obL2SnapshotEndpoint": { "Name": "Order Book L2 Snapshot", "Simple": "https://min-api.cryptocompare.com/data/v2/ob/l2/snapshot", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key and correct permissions, please get in touch if you want to test it. Returns latest order book Level 2 data snapshot for the requested exchange.

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "BTC", "minLen": 1, "maxLen": 10, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfo" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsym", "type": "string", "required": false, "defaultVal": "USDT", "minLen": 1, "maxLen": 10, "transform": "Uppercase", "extraValidation": [ "KeyInTradePairsOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "Binance", "minLen": 2, "maxLen": 30, "extraValidation": [ "MarketHasOrderbook", "MarketInPairMarketList" ], "description": "The exchange to obtain data from" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": -1, "maxValue": 2000, "description": "The number of top bids and asks to return. If you want them `all`, just pass in -1 for the limit param." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/ob/l2/snapshot", "https://min-api.cryptocompare.com/data/v2/ob/l2/snapshot?fsym=ETH&tsym=BTC&e=Binance", "https://min-api.cryptocompare.com/data/v2/ob/l2/snapshot?fsym=ETH&tsym=BTC&e=Binance&limit=-1" ], "CacheDuration": "10 seconds" } } } }, "Other": { "ShowOnFrontEnd": true, "Icon": "cog", "Expanded": false, "Name": "General Info", "DocumentationType": "REST", "SubCatgeories": { "allExchangesV4Endpoint": { "Name": "All the Exchanges and Trading Pairs", "Simple": "https://min-api.cryptocompare.com/data/v4/all/exchanges", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the exchanges that CryptoCompare has integrated with. You can filter by exchange and from symbol

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "e", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "extraValidation": [ "MarketExistsOrEmpty" ], "description": "The exchange to obtain data from" }, { "name": "topTier", "type": "boolean", "required": false, "defaultVal": false, "description": "Set to true if you just want to return just the top tier exchanges" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" }, { "name": "excludeInactivePairs", "type": "boolean", "required": false, "defaultVal": true, "description": "Whether to exclude inactive pairs from total list of pairs" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v4/all/exchanges" ], "CacheDuration": "120 seconds" } }, "allIncludedExchangesEndpoint": { "Name": "Display Instrument Constituent Pairs", "Simple": "https://min-api.cryptocompare.com/data/all/includedexchanges", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the constituent exchanges in the requested instrument.

", "Parameters": [ { "name": "instrument", "type": "string", "required": false, "defaultVal": "CCCAGG", "minLen": 1, "maxLen": 2000, "extraValidation": [ "InstrumentIsVisible" ], "description": "The type of average instrument. It will return the exchanges and pairs included in this average." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/all/includedexchanges" ], "CacheDuration": "120 seconds" } }, "cccaggPairsAndExchangesV2Endpoint": { "Name": "Display CCCAGG Constituent Pairs", "Simple": "https://min-api.cryptocompare.com/data/v2/cccagg/pairs", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the pairs and exchanges currently included in CCCAGG

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/cccagg/pairs", "https://min-api.cryptocompare.com/data/v2/cccagg/pairs?fsym=BTC" ], "CacheDuration": "120 seconds" } }, "cccaggPairsAndExchangesExcludedEndpoint": { "Name": "Display CCCAGG Excluded Pairs", "Simple": "https://min-api.cryptocompare.com/data/cccagg/pairs/excluded", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the pairs and exchanges currently not included in CCCAGG

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/cccagg/pairs/excluded", "https://min-api.cryptocompare.com/data/cccagg/pairs/excluded?fsym=BTC" ], "CacheDuration": "120 seconds" } }, "cccaggPairsAndExchangesAbsentEndpoint": { "Name": "Display CCCAGG Absent Pairs", "Simple": "https://min-api.cryptocompare.com/data/cccagg/pairs/absent", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the pairs and exchanges that we currently do not have any CCCAGG included pairs so we do not currently compute any CCCAGG price.

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/cccagg/pairs/absent" ], "CacheDuration": "120 seconds" } }, "cccaggCoinsAbsentEndpoint": { "Name": "Display CCCAGG Absent Coins", "Simple": "https://min-api.cryptocompare.com/data/cccagg/coins/absent", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the pairs and exchanges for the coins that have no included pairs and exchanges.

", "Parameters": [ { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/cccagg/coins/absent" ], "CacheDuration": "120 seconds" } }, "allCoinsWithContentEndpoint": { "Name": "All the Coins", "Simple": "https://min-api.cryptocompare.com/data/all/coinlist", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns all the coins that CryptoCompare has added to the website. This is not the full list of coins we have in the system, it is just the list of coins we have done some research on.

", "Parameters": [ { "name": "builtOn", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "extraValidation": [ "BuiltOnIsValid" ], "description": "The platform that the token is built on" }, { "name": "summary", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true it will only return Id, ImageUrl, Symbol, FullName for each coin. Only works with the full list of coins." }, { "name": "fsym", "type": "string", "required": false, "defaultVal": "", "minLen": 0, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRootOrEmpty" ], "description": "The cryptocurrency symbol of interest" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/all/coinlist" ], "CacheDuration": "120 seconds" } }, "allExchangesStaticInfoEndpoint": { "Name": "All Exchanges General Info", "Simple": "https://min-api.cryptocompare.com/data/exchanges/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info and 24h volume for all the exchanges we have integrated with.

", "Parameters": [ { "name": "tsym", "type": "string", "required": false, "defaultVal": "BTC", "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchanges/general" ], "CacheDuration": "120 seconds" } }, "allGamblingStaticInfoEndpoint": { "Name": "All Gambling General Info", "Simple": "https://min-api.cryptocompare.com/data/gambling/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the exchanges we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/gambling/general" ], "CacheDuration": "120 seconds" } }, "allWalletsStaticInfoEndpoint": { "Name": "All Wallets General Info", "Simple": "https://min-api.cryptocompare.com/data/wallets/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the wallets we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/wallets/general" ], "CacheDuration": "120 seconds" } }, "allCardsStaticInfoEndpoint": { "Name": "All Crypto Cards General Info", "Simple": "https://min-api.cryptocompare.com/data/cards/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the crypto cards we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/cards/general" ], "CacheDuration": "120 seconds" } }, "allMiningContractsStaticInfoEndpoint": { "Name": "All Mining Contracts General Info", "Simple": "https://min-api.cryptocompare.com/data/mining/contracts/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the mining contracts we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/mining/contracts/general" ], "CacheDuration": "120 seconds" } }, "allMiningCompaniesStaticInfoEndpoint": { "Name": "All Mining Companies General Info", "Simple": "https://min-api.cryptocompare.com/data/mining/companies/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the mining companies we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/mining/companies/general" ], "CacheDuration": "120 seconds" } }, "allMiningEquipmentStaticInfoEndpoint": { "Name": "All Mining Equipment General Info", "Simple": "https://min-api.cryptocompare.com/data/mining/equipment/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the mining equipment we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/mining/equipment/general" ], "CacheDuration": "120 seconds" } }, "allMiningPoolsStaticInfoEndpoint": { "Name": "All Mining Pools General Info", "Simple": "https://min-api.cryptocompare.com/data/mining/pools/general", "NewUntil": "2015-01-01", "Info": { "Description": "

You can only use this endpoint with a valid api_key. Returns general info about all the mining pools we have integrated with.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/mining/pools/general" ], "CacheDuration": "120 seconds" } }, "getRecommendedEntitiesEndpoint": { "Name": "All Recommended Entities", "Simple": "https://min-api.cryptocompare.com/data/recommended/all", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns general info about our recommended entities.

", "Parameters": [ { "name": "tsym", "type": "string", "required": false, "defaultVal": "BTC", "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/recommended/all" ], "CacheDuration": "120 seconds" } }, "rateLimitEndpoint": { "Name": "Rate limit", "Simple": "https://min-api.cryptocompare.com/stats/rate/limit", "NewUntil": "2015-01-01", "Info": { "Description": "

Find out how many calls you have left in the current month, day, hour, minute and second

", "Parameters": [], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/stats/rate/limit" ], "CacheDuration": "0 seconds" } }, "rateLimitHourEndpoint": { "Name": "Rate limit hour", "Simple": "https://min-api.cryptocompare.com/stats/rate/hour/limit", "NewUntil": "2015-01-01", "Info": { "Description": "

Find out how many calls you have left in the current hour

", "Parameters": [], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/stats/rate/hour/limit" ], "CacheDuration": "0 seconds" } } } }, "Streaming": { "ShowOnFrontEnd": true, "Icon": "sitemap", "Expanded": false, "Name": "Helper Endpoints", "DocumentationType": "STREAMING", "SubCatgeories": { "TopTotalVolumeEndpoint": { "Name": "Toplist by 24H Volume Subscriptions", "Simple": "https://min-api.cryptocompare.com/data/top/totalvol?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their total volume across all markets in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/totalvol?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/totalvol?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "topTotalTopTierVolumeEndpoint": { "Name": "Toplist by 24H Top Tier Volume Subscriptions", "Simple": "https://min-api.cryptocompare.com/data/top/totaltoptiervol?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their total top tier volume on the top 20 markets in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/totaltoptiervol?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/totaltoptiervol?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "TopTotalMktCapEndpoint": { "Name": "Toplist by Market Cap Subscriptions", "Simple": "https://min-api.cryptocompare.com/data/top/mktcap?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their market cap. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/mktcap?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/mktcap?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "TopDirectVolEndpoint": { "Name": "Toplist by Direct Volume", "Simple": "https://min-api.cryptocompare.com/data/top/directvol?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their total top tier volume on the top 20 markets in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/directvol?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/directvol?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "TopPriceEndpoint": { "Name": "Toplist by Price", "Simple": "https://min-api.cryptocompare.com/data/top/price?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their price. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/price?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/price?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "TopPercentageChangeEndpoint": { "Name": "Toplist by Percent Change", "Simple": "https://min-api.cryptocompare.com/data/top/percent?limit=10&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get a number of top coins by their price percentage change in the last 24 hours. Default value is first page (0) and the top 10 coins.

", "Parameters": [ { "name": "limit", "type": "int", "required": false, "defaultVal": 10, "minValue": 1, "maxValue": 100, "description": "The number of coins to return in the toplist, default 10, min 10, max 100 will round to steps of 10 coins" }, { "name": "page", "type": "int", "required": false, "defaultVal": 0, "minValue": 0, "extraValidation": [ "UnderTotalCoinsValue" ], "description": "The pagination for the request. If you want to paginate by 50 for example, pass in the limit_toplist param the value 50 and increasing page_toplist integer values, 0 would return coins 0-50, 1 returns coins 50-100" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalToPairs" ], "description": "The currency symbol to convert into" }, { "name": "assetClass", "type": "string", "required": false, "defaultVal": "ALL", "minLen": 0, "maxLen": 100, "transform": "Uppercase", "extraValidation": [ "AssetClassExists" ], "description": "The asset class of a set of coins to filter the toplist by. Options are DEFI and ALL." }, { "name": "ascending", "type": "boolean", "required": false, "defaultVal": true }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/top/percent?tsym=USD&page=2", "https://min-api.cryptocompare.com/data/top/percent?limit=30&page=3&tsym=EUR&extraParams=your_app_name" ], "CacheDuration": "120 seconds" } }, "subsByPairV2Endpoint": { "Name": "Subs By Pair", "Simple": "https://min-api.cryptocompare.com/data/v2/subs?fsym=BTC&tsyms=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get fsym info, agg streaming snapshot and all the available streamer subscription channels for the requested pairs.

", "Parameters": [ { "name": "fsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeyInGlobalInfoRoot" ], "description": "The cryptocurrency symbol of interest" }, { "name": "tsyms", "type": "string", "required": false, "minLen": 1, "maxLen": 100, "defaultVal": "ALL_SYMBOLS", "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInAtLeastOneTradePairOrConversionSymbolTradePairs" ], "baseKey": "fsym", "description": "Comma separated cryptocurrency symbols list to convert into" }, { "name": "removeOldTSYMS", "type": "boolean", "required": false, "defaultVal": true, "description": "If set to true it will only return TSYMS where the top market traded in the last 7 days. If set to false, it will return all tsyms that that pair has ever traded into." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/v2/subs?fsym=BTC", "https://min-api.cryptocompare.com/data/v2/subs?fsym=BTC&tsyms=USD,EUR,GBP", "https://min-api.cryptocompare.com/data/v2/subs?fsym=ETH&tsyms=BTC,EUR" ], "CacheDuration": "120 seconds" } }, "subsWatchlistEndpoint": { "Name": "Subs Watchlist", "Simple": "https://min-api.cryptocompare.com/data/subsWatchlist?fsyms=BTC,MLN,DASH&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get combinations of subs and pricing info in order to know what needs to be streamed and how to connect to the streamers. The possible responses for Conversion are: not_needed, direct, invert, multiply, divide, invert_multiply, invert_divide

", "Parameters": [ { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 3000, "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInGlobalInfo" ], "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeysInAtLeastOneTradePairOrConversionSymbolTradePairs" ], "baseKey": "fsyms", "description": "The currency symbol to convert into" }, { "name": "e", "type": "string", "required": false, "defaultVal": "CCCAGG", "allowedValues": [ "CCCAGG" ], "showFrontend": false, "description": "The exchange to obtain data from" }, { "name": "tryConversion", "type": "boolean", "required": false, "defaultVal": true, "allowedValues": [ true ], "showFrontend": false, "description": "If set to false, it will try to get only direct trading values. This parameter is only valid for e=CCCAGG value" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/subsWatchlist?fsyms=BTC,ETH,XMR,MLN,DASH&tsym=XMR", "https://min-api.cryptocompare.com/data/subsWatchlist?fsyms=BTC,ETH,XMR,MLN,DASH,GBP&tsym=USD", "https://min-api.cryptocompare.com/data/subsWatchlist?fsyms=BTC,ETH,XMR,MLN,DASH,USD&tsym=MLN" ], "CacheDuration": "60 seconds" } }, "coinsGeneralInfoEndpoint": { "Name": "Coins General Info", "Simple": "https://min-api.cryptocompare.com/data/coin/generalinfo?fsyms=BTC,MLN,DASH&tsym=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Get combinations of subs and pricing info in order to know what needs to be streamed and how to connect to the streamers. The possible responses for Conversion are: not_needed, direct, invert, multiply, divide, invert_multiply, invert_divide

", "Parameters": [ { "name": "fsyms", "type": "string", "required": true, "minLen": 1, "maxLen": 3000, "transform": "Uppercase", "eliminateDuplicates": true, "extraValidation": [ "KeysInGlobalInfo" ], "description": "Comma separated cryptocurrency symbols list" }, { "name": "tsym", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "extraValidation": [ "KeysInAtLeastOneTradePairOrConversionSymbolTradePairs" ], "baseKey": "fsyms", "description": "The currency symbol to convert into" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/coin/generalinfo?fsyms=BTC,ETH,XMR,MLN,DASH&tsym=XMR", "https://min-api.cryptocompare.com/data/coin/generalinfo?fsyms=BTC,ETH,XMR,MLN,DASH,GBP&tsym=USD", "https://min-api.cryptocompare.com/data/coin/generalinfo?fsyms=BTC,ETH,XMR,MLN,DASH,USD&tsym=MLN" ], "CacheDuration": "120 seconds" } }, "exchangeSnapshotEndpoint": { "Name": "Tick snapshots for all pairs for an exchange", "Simple": "https://min-api.cryptocompare.com/data/exchange/snapshot?e=Coinbase", "NewUntil": "2015-01-01", "Info": { "Description": "

Returns tick snapshots for all pairs for an exchange.

", "Parameters": [ { "name": "e", "type": "string", "required": true, "defaultVal": "Coinbase", "minLen": 2, "maxLen": 30, "description": "The exchange to obtain data from", "extraValidation": [ "MarketExists" ] } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/exchange/snapshot?e=Coinbase" ], "CacheDuration": "60 seconds" } } } }, "Index": { "ShowOnFrontEnd": true, "Icon": "align-center", "Expanded": false, "Name": "Index (excluding CCCAGG)", "DocumentationType": "REST", "SubCatgeories": { "listOfIndices": { "Name": "List of available indices", "Simple": "https://min-api.cryptocompare.com/data/index/list", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Returns all the indices we have chosen to list on the public api.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/list" ], "CacheDuration": "120 seconds" } }, "mvisIndexValue": { "Name": "Single index value", "Simple": "https://min-api.cryptocompare.com/data/index/value?indexName=MVDA", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get the current value, open, high, low of an index.

", "Parameters": [ { "name": "indexName", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index you want to get the latest value for." }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/value?indexName=MVDA10" ], "CacheDuration": "10 seconds" } }, "mvisHistoMinute": { "Name": "Historical Minute OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/minute?indexName=MVDA&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options.Get open, high, low, and close minute historical data. You can only get 7 days of minute data though this API, if you need more contact data@cryptocompare.com", "Parameters": [ { "name": "indexName", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index you want to get the latest value for." }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidationMinute", "ValidateAndCapToHitTimestamp" ], "secondsInUnit": 60, "cacheLength": 60, "maxUnits": 2000, "unit": "minute", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/minute?indexName=MVDA&limit=30" ], "CacheDuration": "60 seconds" } }, "mvisHistoHour": { "Name": "Historical Hourly OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/hour?indexName=MVDA&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get open, high, low, and close hourly historical data. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "indexName", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index you want to get the latest value for." }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/hour?indexName=MVDA&limit=30" ], "CacheDuration": "610 seconds" } }, "mvisHistoDay": { "Name": "Historical Daily OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/day?indexName=MVDA&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get open, high, low, and close daily historical data. The values are based on the index closing time. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "indexName", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index you want to get the latest value for." }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/day?indexName=MVDA&limit=30" ], "CacheDuration": "610 seconds" } }, "listOfUnderlyingIndices": { "Name": "List of available underlying indices", "Simple": "https://min-api.cryptocompare.com/data/index/underlying/list", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Returns all the underlying indices we have chosen to list on the public api.

", "Parameters": [ { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/underlying/list" ], "CacheDuration": "120 seconds" } }, "mvisIndexUnderlyingValue": { "Name": "Single index underlying value", "Simple": "https://min-api.cryptocompare.com/data/index/underlying/value?market=CCMVDA&base=BTC"e=USD", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get all the current trading info (price, vol, open, high, low etc).

", "Parameters": [ { "name": "base", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "quote", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "market", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index market" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/underlying/value?base=BTC"e=USD" ], "CacheDuration": "10 seconds" } }, "mvisHistoUnderlyingMinute": { "Name": "Historical Minute Underlying OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/underlying/minute?market=CCMVDA&base=BTC"e=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options.Get open, high, low, and close minute historical data. You can only get 7 days of minute data though this API, if you need more contact data@cryptocompare.com", "Parameters": [ { "name": "base", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "quote", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "market", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index market" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidationMinute", "ValidateAndCapToHitTimestamp" ], "secondsInUnit": 60, "cacheLength": 60, "maxUnits": 2000, "unit": "minute", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/underlying/minute?market=CCMVDA&base=BTC"e=USD&limit=30" ], "CacheDuration": "60 seconds" } }, "mvisHistoUnderlyingHour": { "Name": "Historical Hourly Underlying OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/underlying/hour?market=CCMVDA&base=BTC"e=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get open, high, low, and close hourly historical data. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "base", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "quote", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "market", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index market" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "defaultToHitTime": true, "nowOrLess": true, "required": false, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 3600, "cacheLength": 610, "maxUnits": 2000, "unit": "hour", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/underlying/hour?market=CCMVDA&base=BTC"e=USD&limit=30" ], "CacheDuration": "610 seconds" } }, "mvisHistoUnderlyingDay": { "Name": "Historical Daily Underlying OHLC", "Simple": "https://min-api.cryptocompare.com/data/index/histo/underlying/day?market=CCMVDA&base=BTC"e=USD&limit=10", "NewUntil": "2015-01-01", "Info": { "Description": "

Most / all indices on this endpoint require a valid api_key and the appropriate permission. The data is for display and research purposes only, contact CCData Indices for licensing options. Get open, high, low, and close daily historical data. The values are based on the index closing time. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}.

", "Parameters": [ { "name": "base", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The cryptocurrency symbol of interest" }, { "name": "quote", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The currency symbol to convert into" }, { "name": "market", "type": "string", "required": true, "minLen": 1, "maxLen": 30, "transform": "Uppercase", "description": "The index market" }, { "name": "aggregate", "type": "int", "required": false, "defaultVal": 1, "minValue": 1, "maxValue": 1, "description": "Time period to aggregate the data over (for daily it's days, for hourly it's hours and for minute histo it's minutes)" }, { "name": "limit", "type": "int", "required": false, "defaultVal": 30, "minValue": 1, "maxValue": 2000, "description": "The number of data points to return. If limit * aggregate > 2000 we reduce the limit param on our side. So a limit of 1000 and an aggerate of 4 would only return 2000 (max points) / 4 (aggregation size) = 500 total points + current one so 501." }, { "name": "toTs", "type": "timestamp", "required": false, "defaultToHitTime": true, "nowOrLess": true, "extraValidation": [ "toTimestampValidation" ], "secondsInUnit": 86400, "cacheLength": 610, "maxUnits": 2000, "unit": "day", "description": "Returns historical data before that timestamp. If you want to get all the available historical data, you can use limit=2000 and keep going back in time using the toTs param. You can then keep requesting batches using: &limit=2000&toTs={the earliest timestamp received}" }, { "name": "extraParams", "type": "string", "required": false, "defaultVal": "NotAvailable", "minLen": 1, "maxLen": 2000, "description": "The name of your application (we recommend you send it)" }, { "name": "sign", "type": "boolean", "required": false, "defaultVal": false, "description": "If set to true, the server will sign the requests (by default we don't sign them), this is useful for usage in smart contracts" } ], "ResponseFields": {}, "Examples": [ "https://min-api.cryptocompare.com/data/index/histo/underlying/day?market=CCMVDA&base=BTC"e=USD&limit=10" ], "CacheDuration": "610 seconds" } } } }, "Config": { "ShowOnFrontEnd": false, "AutoGenerate": false, "Expanded": false, "SubCatgeories": { "APICalls": { "title": "Calls Per Second", "statistic": "40,000" }, "TradeUpdatesPerSecond": { "title": "Trades Per Second", "statistic": "8,000" }, "OrderbookUpdatesPerSecond": { "title": "Orders Per Second", "statistic": "300,000" }, "Coins": { "title": "Assets", "statistic": "6,275" }, "Pairs": { "title": "Trading Pairs", "statistic": "291,348" }, "Exchanges": { "title": "Exchanges", "statistic": "315" } } }, "PricingInfo": { "ShowOnFrontEnd": false, "Expanded": false, "Plans": { "sub_commercial_2_v2": { "id": "sub_commercial_2_v2", "rank": 750, "name": "Corporate", "description": "For small to medium size organisations & clients needing an advanced crypto data solution.", "price": { "month": 379.99, "year": 4199.88 }, "rate_limit": { "data_api": { "month": 1000000, "day": 250000, "hour": 250000, "minute": 15000, "second": 500, "soft_cap_allowance_multiplier": 1.1 }, "price_api": { "month": 1000000, "day": 250000, "hour": 250000, "minute": 15000, "second": 500, "soft_cap_allowance_multiplier": 1.1 }, "streamer": { "month": 20000, "day": 10000, "hour": 1200, "minute": 60, "second": 30, "soft_cap_allowance_multiplier": 1.1, "max_sockets": 3, "max_subs_per_socket": 1000 }, "data_streamer": { "month": 20000, "day": 10000, "hour": 1200, "minute": 60, "second": 30, "soft_cap_allowance_multiplier": 1.1, "max_sockets": 3, "max_subs_per_socket": 1000 } } } }, "DefaultLimits": { "month": 100000, "day": 50000, "hour": 25000, "minute": 2500, "second": 50, "soft_cap_allowance_multiplier": 1.2, "lifetime": 250000 }, "SubCatgeories": {} } } CCC.API.CRYPTOSHEETS = { "blockchainListOfCoins": { "endpointid": 752, "endpoint": "Available Coin List", "excel": "=CS.QUERY(\"Cryptocompare\",\"Available Coin List\",{\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Available Coin List\",{\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Available-Coin-List", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Blockchain&cat=blockchainListOfCoins" }, "allMiningEquipmentStaticInfoEndpoint": { "endpointid": 454, "endpoint": "Mining Equipment", "excel": "=CS.QUERY(\"Cryptocompare\",\"Mining Equipment\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Mining Equipment\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Mining-Equipment", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allMiningEquipmentStaticInfoEndpoint" }, "allMiningContractsStaticInfoEndpoint": { "endpointid": 452, "endpoint": "Mining Contracts", "excel": "=CS.QUERY(\"Cryptocompare\",\"Mining Contracts\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Mining Contracts\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Mining-Contracts", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allMiningContractsStaticInfoEndpoint" }, "SingleSymbolPriceEndpoint": { "endpointid": 403, "endpoint": "Price", "excel": "=CS.QUERY(\"Cryptocompare\",\"Price\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"relaxedValidation\",\"false\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Price\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"relaxedValidation\",\"false\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Price", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Price&cat=SingleSymbolPriceEndpoint" }, "multipleSymbolsPriceEndpoint": { "endpointid": 404, "endpoint": "Pricemulti", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pricemulti\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC,ETH\";\"relaxedValidation\",\"False\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pricemulti\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC,ETH\";\"relaxedValidation\",\"False\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pricemulti", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Price&cat=multipleSymbolsPriceEndpoint" }, "multipleSymbolsFullPriceEndpoint": { "endpointid": 405, "endpoint": "Pricemultifull", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pricemultifull\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC,ETH\";\"relaxedValidation\",\"false\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pricemultifull\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC,ETH\";\"relaxedValidation\",\"false\";\"sign\",\"false\";\"tryConversion\",\"true\";\"tsyms\",\"USD,EUR\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pricemultifull", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Price&cat=multipleSymbolsFullPriceEndpoint" }, "generateAverageEndpoint": { "endpointid": 406, "endpoint": "Generateavg", "excel": "=CS.QUERY(\"Cryptocompare\",\"Generateavg\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Generateavg\",{\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Generateavg", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Price&cat=generateAverageEndpoint" }, "dataHistoday": { "endpointid": 407, "endpoint": "V2 Histoday", "excel": "=CS.QUERY(\"Cryptocompare\",\"V2 Histoday\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"allData\",\"false\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"50\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"V2 Histoday\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"allData\",\"false\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"50\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/V2-Histoday", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataHistoday" }, "dataHistohour": { "endpointid": 408, "endpoint": "V2 Histohour", "excel": "=CS.QUERY(\"Cryptocompare\",\"V2 Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"V2 Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/V2-Histohour", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataHistohour" }, "dataHistominute": { "endpointid": 409, "endpoint": "V2 Histominute", "excel": "=CS.QUERY(\"Cryptocompare\",\"V2 Histominute\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"1440\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"V2 Histominute\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"explainPath\",\"false\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"1440\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/V2-Histominute", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataHistominute" }, "dataExchangeHistoday": { "endpointid": 416, "endpoint": "Exchange Histoday", "excel": "=CS.QUERY(\"Cryptocompare\",\"Exchange Histoday\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Exchange Histoday\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Exchange-Histoday", "careDocsUrl": "https://min-api.cryptocompare.com/documentation" }, "dataHistohourV1": { "endpointid": 412, "endpoint": "Histohour", "excel": "=CS.QUERY(\"Cryptocompare\",\"Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Histohour", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataHistohourV1" }, "dataHistominuteV1": { "endpointid": 413, "endpoint": "Histominute", "excel": "=CS.QUERY(\"Cryptocompare\",\"Histominute\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"1440\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Histominute\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"1440\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Histominute", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataHistominuteV1" }, "dataPriceHistorical": { "endpointid": 414, "endpoint": "Pricehistorical", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pricehistorical\",{\"calculationType\",\"Close\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tryConversion\",\"true\";\"ts\",\"1452680400\";\"tsyms\",\"USD,EUR\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pricehistorical\",{\"calculationType\",\"Close\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tryConversion\",\"true\";\"ts\",\"1452680400\";\"tsyms\",\"USD,EUR\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pricehistorical", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataPriceHistorical" }, "dataPriceHistoricalDayAvg": { "endpointid": 415, "endpoint": "Dayavg", "excel": "=CS.QUERY(\"Cryptocompare\",\"Dayavg\",{\"avgType\",\"HourVWAP\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\";\"UTCHourDiff\",\"0\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Dayavg\",{\"avgType\",\"HourVWAP\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tryConversion\",\"true\";\"tsym\",\"USD\";\"UTCHourDiff\",\"0\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Dayavg", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataPriceHistoricalDayAvg" }, "dataExchangeHistoHour": { "endpointid": 417, "endpoint": "Exchange Histohour", "excel": "=CS.QUERY(\"Cryptocompare\",\"Exchange Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Exchange Histohour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"e\",\"CCCAGG\";\"extraParams\",\"CryptoSheets\";\"limit\",\"168\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Exchange-Histohour", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataExchangeHistoHour" }, "pairMappingMappedSymbolEndpoint": { "endpointid": 418, "endpoint": "Pair Mapping Fsym", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pair Mapping Fsym\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pair Mapping Fsym\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pair-Mapping-Fsym", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Pairmapping&cat=pairMappingMappedSymbolEndpoint" }, "pairMappingExchangeEndpoint": { "endpointid": 419, "endpoint": "Pair Mapping Exchange", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pair Mapping Exchange\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pair Mapping Exchange\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pair-Mapping-Exchange", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Pairmapping&cat=pairMappingExchangeEndpoint" }, "pairMappingExchangeSymbolEndpoint": { "endpointid": 420, "endpoint": "Pair Mapping Exchange Fsym", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pair Mapping Exchange Fsym\",{\"exchangeFsym\",\"BTC\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pair Mapping Exchange Fsym\",{\"exchangeFsym\",\"BTC\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pair-Mapping-Exchange-Fsym", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Pairmapping&cat=pairMappingExchangeSymbolEndpoint" }, "plannedPairRemappingEndpoint": { "endpointid": 421, "endpoint": "Pair Mapping Planned Updates", "excel": "=CS.QUERY(\"Cryptocompare\",\"Pair Mapping Planned Updates\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Pair Mapping Planned Updates\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Pair-Mapping-Planned-Updates", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=PairMapping&cat=plannedPairRemappingEndpoint" }, "TopTotalVolumeEndpointFull": { "endpointid": 422, "endpoint": "Top Totalvolfull", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Totalvolfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Totalvolfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Totalvolfull", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=TopTotalVolumeEndpointFull" }, "topTotalTopTierVolumeEndpointFull": { "endpointid": 423, "endpoint": "Top Totaltoptiervolfull", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Totaltoptiervolfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Totaltoptiervolfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Totaltoptiervolfull", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=topTotalTopTierVolumeEndpointFull" }, "TopTotalMktCapEndpointFull": { "endpointid": 424, "endpoint": "Top Mktcapfull", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Mktcapfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Mktcapfull\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Mktcapfull", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=TopTotalMktCapEndpointFull" }, "topExchangesEndpoint": { "endpointid": 425, "endpoint": "Top Exchanges", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Exchanges\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Exchanges\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Exchanges", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=topExchangesEndpoint" }, "topExchangesFullEndpoint": { "endpointid": 426, "endpoint": "Top Exchanges Full", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Exchanges Full\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Exchanges Full\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Exchanges-Full", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=topExchangesFullEndpoint" }, "topExchangesVolumes": { "endpointid": 427, "endpoint": "Top Volumes", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Volumes\",{\"extraParams\",\"CryptoSheets\";\"limit\",\"20\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Volumes\",{\"extraParams\",\"CryptoSheets\";\"limit\",\"20\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Volumes", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=topExchangesVolumes" }, "topPairsEndpoint": { "endpointid": 428, "endpoint": "Top Pairs", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Pairs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Pairs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"5\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Pairs", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Toplists&cat=topPairsEndpoint" }, "latestCoinSocialStats": { "endpointid": 429, "endpoint": "Social Coin Latest", "excel": "=CS.QUERY(\"Cryptocompare\",\"Social Coin Latest\",{\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Social Coin Latest\",{\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Social-Coin-Latest", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Social&cat=latestCoinSocialStats" }, "historicalDaySocialStats": { "endpointid": 430, "endpoint": "Social Coin Histo Day", "excel": "=CS.QUERY(\"Cryptocompare\",\"Social Coin Histo Day\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Social Coin Histo Day\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Social-Coin-Histo-Day", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Social&cat=historicalDaySocialStats" }, "historicalHourSocialStats": { "endpointid": 431, "endpoint": "Social Coin Histo Hour", "excel": "=CS.QUERY(\"Cryptocompare\",\"Social Coin Histo Hour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Social Coin Histo Hour\",{\"aggregate\",\"1\";\"aggregatePredictableTimePeriods\",\"true\";\"coinId\",\"1182\";\"extraParams\",\"CryptoSheets\";\"limit\",\"30\";\"sign\",\"false\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Social-Coin-Histo-Hour", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Social&cat=historicalHourSocialStats" }, "latestNewsArticlesEndpoint": { "endpointid": 432, "endpoint": "V2 News", "excel": "=CS.QUERY(\"Cryptocompare\",\"V2 News\",{\"categories\",\"ALL_NEWS_CATEGORIES\";\"excludeCategories\",\"NO_EXCLUDED_NEWS_CATEGORIES\";\"extraParams\",\"CryptoSheets\";\"feeds\",\"ALL_NEWS_FEEDS\";\"lang\",\"EN\";\"lTs\",\"0\";\"sign\",\"false\";\"sortOrder\",\"latest\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"V2 News\",{\"categories\",\"ALL_NEWS_CATEGORIES\";\"excludeCategories\",\"NO_EXCLUDED_NEWS_CATEGORIES\";\"extraParams\",\"CryptoSheets\";\"feeds\",\"ALL_NEWS_FEEDS\";\"lang\",\"EN\";\"lTs\",\"0\";\"sign\",\"false\";\"sortOrder\",\"latest\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/V2-News", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=News&cat=latestNewsArticlesEndpoint" }, "ListNewsFeedsEndpoint": { "endpointid": 433, "endpoint": "News Feeds", "excel": "=CS.QUERY(\"Cryptocompare\",\"News Feeds\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"News Feeds\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/News-Feeds", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=News&cat=ListNewsFeedsEndpoint" }, "newsArticleCategoriesEndpoint": { "endpointid": 434, "endpoint": "News Categories", "excel": "=CS.QUERY(\"Cryptocompare\",\"News Categories\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"News Categories\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/News-Categories", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=News&cat=newsArticleCategoriesEndpoint" }, "newsFeedAndCategoriesEndpoint": { "endpointid": 435, "endpoint": "News Feedsandcategories", "excel": "=CS.QUERY(\"Cryptocompare\",\"News Feedsandcategories\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"News Feedsandcategories\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/News-Feedsandcategories", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=News&cat=newsFeedAndCategoriesEndpoint" }, "exchangesWithOrdebookStaticInfoEndpoint": { "endpointid": 436, "endpoint": "Ob L2 Exchanges", "excel": "=CS.QUERY(\"Cryptocompare\",\"Ob L2 Exchanges\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Ob L2 Exchanges\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Ob-L2-Exchanges", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Orderbook&cat=exchangesWithOrdebookStaticInfoEndpointV2" }, "obL2SnapshotEndpoint": { "endpointid": 438, "endpoint": "Ob L2 Snapshot", "excel": "=CS.QUERY(\"Cryptocompare\",\"Ob L2 Snapshot\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"30\";\"sign\",\"false\";\"tsym\",\"USDT\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Ob L2 Snapshot\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"limit\",\"30\";\"sign\",\"false\";\"tsym\",\"USDT\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Ob-L2-Snapshot", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Orderbook&cat=obL2SnapshotEndpoint" }, "rateLimitEndpoint": { "endpointid": 439, "endpoint": "Stats Rate Limit", "excel": "=CS.QUERY(\"Cryptocompare\",\"Stats Rate Limit\")", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Stats Rate Limit\")", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Stats-Rate-Limit", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=rateLimitEndpoint" }, "rateLimitHourEndpoint": { "endpointid": 440, "endpoint": "Stats Rate Hour Limit", "excel": "=CS.QUERY(\"Cryptocompare\",\"Stats Rate Hour Limit\")", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Stats Rate Hour Limit\")", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Stats-Rate-Hour-Limit", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=rateLimitHourEndpoint" }, "allExchangesV3Endpoint": { "endpointid": 441, "endpoint": "V3 All Exchanges", "excel": "=CS.QUERY(\"Cryptocompare\",\"V3 All Exchanges\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"topTier\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"V3 All Exchanges\",{\"e\",\"Binance\";\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"topTier\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/V3-All-Exchanges", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allExchangesV3Endpoint" }, "allIncludedExchangesEndpoint": { "endpointid": 442, "endpoint": "All Includedexchanges", "excel": "=CS.QUERY(\"Cryptocompare\",\"All Includedexchanges\",{\"extraParams\",\"CryptoSheets\";\"instrument\",\"CCCAGG\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"All Includedexchanges\",{\"extraParams\",\"CryptoSheets\";\"instrument\",\"CCCAGG\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/All-Includedexchanges", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allIncludedExchangesEndpoint" }, "cccaggPairsAndExchangesV2Endpoint": { "endpointid": 443, "endpoint": "Cccagg Pairs", "excel": "=CS.QUERY(\"Cryptocompare\",\"Cccagg Pairs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Cccagg Pairs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Cccagg-Pairs", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=cccaggPairsAndExchangesV2Endpoint" }, "cccaggPairsAndExchangesExcludedEndpoint": { "endpointid": 444, "endpoint": "Cccagg Pairs Excluded", "excel": "=CS.QUERY(\"Cryptocompare\",\"Cccagg Pairs Excluded\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Cccagg Pairs Excluded\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Cccagg-Pairs-Excluded", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=cccaggPairsAndExchangesExcludedEndpoint" }, "cccaggPairsAndExchangesAbsentEndpoint": { "endpointid": 446, "endpoint": "Cccagg Coins Absent", "excel": "=CS.QUERY(\"Cryptocompare\",\"Cccagg Coins Absent\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Cccagg Coins Absent\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Cccagg-Coins-Absent", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=cccaggPairsAndExchangesAbsentEndpoint" }, "cccaggCoinsAbsentEndpoint": { "endpointid": 447, "endpoint": "All Coinlist", "excel": "=CS.QUERY(\"Cryptocompare\",\"All Coinlist\",{\"builtOn\",\"\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"All Coinlist\",{\"builtOn\",\"\";\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/All-Coinlist", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=cccaggCoinsAbsentEndpoint" }, "allExchangesStaticInfoEndpoint": { "endpointid": 448, "endpoint": "Exchanges", "excel": "=CS.QUERY(\"Cryptocompare\",\"Exchanges\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"tsym\",\"BTC\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Exchanges\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"tsym\",\"BTC\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Exchanges", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allExchangesStaticInfoEndpoint" }, "allGamblingStaticInfoEndpoint": { "endpointid": 449, "endpoint": "Gambling", "excel": "=CS.QUERY(\"Cryptocompare\",\"Gambling\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Gambling\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Gambling", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allGamblingStaticInfoEndpoint" }, "allWalletsStaticInfoEndpoint": { "endpointid": 450, "endpoint": "Wallets", "excel": "=CS.QUERY(\"Cryptocompare\",\"Wallets\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Wallets\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Wallets", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allWalletsStaticInfoEndpoint" }, "allCardsStaticInfoEndpoint": { "endpointid": 451, "endpoint": "Cards", "excel": "=CS.QUERY(\"Cryptocompare\",\"Cards\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Cards\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Cards", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allCardsStaticInfoEndpoint" }, "allMiningCompaniesStaticInfoEndpoint": { "endpointid": 453, "endpoint": "Mining Companies", "excel": "=CS.QUERY(\"Cryptocompare\",\"Mining Companies\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Mining Companies\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Mining-Companies", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allMiningCompaniesStaticInfoEndpoint" }, "allMiningPoolsStaticInfoEndpoint": { "endpointid": 455, "endpoint": "Mining Pools", "excel": "=CS.QUERY(\"Cryptocompare\",\"Mining Pools\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Mining Pools\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Mining-Pools", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=allMiningPoolsStaticInfoEndpoint" }, "getRecommendedEntitiesEndpoint": { "endpointid": 456, "endpoint": "Recommended All", "excel": "=CS.QUERY(\"Cryptocompare\",\"Recommended All\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"tsym\",\"BTC\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Recommended All\",{\"extraParams\",\"CryptoSheets\";\"sign\",\"false\";\"tsym\",\"BTC\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Recommended-All", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Other&cat=getRecommendedEntitiesEndpoint" }, "TopTotalVolumeEndpoint": { "endpointid": 457, "endpoint": "Top Totalvol", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Totalvol\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Totalvol\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Totalvol", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Streaming&cat=TopTotalVolumeEndpoint" }, "topTotalTopTierVolumeEndpoint": { "endpointid": 458, "endpoint": "Top Totaltoptiervol", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Totaltoptiervol\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Totaltoptiervol\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Totaltoptiervol", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Streaming&cat=topTotalTopTierVolumeEndpoint" }, "TopTotalMktCapEndpoint": { "endpointid": 459, "endpoint": "Top Mktcap", "excel": "=CS.QUERY(\"Cryptocompare\",\"Top Mktcap\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Top Mktcap\",{\"ascending\",\"true\";\"limit\",\"10\";\"page\",\"0\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Top-Mktcap", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Streaming&cat=TopTotalMktCapEndpoint" }, "subsByPairEndpoint": { "endpointid": 460, "endpoint": "Subs", "excel": "=CS.QUERY(\"Cryptocompare\",\"Subs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tsyms\",\"ALL_SYMBOLS\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Subs\",{\"extraParams\",\"CryptoSheets\";\"fsym\",\"BTC\";\"sign\",\"false\";\"tsyms\",\"ALL_SYMBOLS\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Subs", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Streaming&cat=subsByPairEndpoint" }, "coinsGeneralInfoEndpoint": { "endpointid": 462, "endpoint": "Coininfo", "excel": "=CS.QUERY(\"Cryptocompare\",\"Coininfo\",{\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC\";\"sign\",\"false\";\"tsym\",\"USD\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Coininfo\",{\"extraParams\",\"CryptoSheets\";\"fsyms\",\"BTC\";\"sign\",\"false\";\"tsym\",\"USD\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Coininfo", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Streaming&cat=coinsGeneralInfoEndpoint" }, "dataExchangeSymbolHistoday": { "endpointid": 598, "endpoint": "Daily Symbol Vol Single Exchange", "excel": "=CS.QUERY(\"Cryptocompare\",\"Daily Symbol Vol Single Exchange\",{\"fsym\",\"BTC\";\"tsym\",\"USDT\";\"e\",\"CCCAGG\";\"aggregate\",\"3\";\"limit\",\"10\";\"toTs\",\"1452680400\";\"extraParams\",\"your_app_name\";\"sign\",\"false\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Daily Symbol Vol Single Exchange\",{\"fsym\",\"BTC\";\"tsym\",\"USDT\";\"e\",\"CCCAGG\";\"aggregate\",\"3\";\"limit\",\"10\";\"toTs\",\"1452680400\";\"extraParams\",\"your_app_name\";\"sign\",\"false\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Daily-Symbol-Vol-Single-Exchange", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Historical&cat=dataExchangeSymbolHistoday" }, "listOfIndices": { "endpointid": 599, "endpoint": "List available indices", "excel": "=CS.QUERY(\"Cryptocompare\",\"List available indices\",{\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"List available indices\",{\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/List-available-indices", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Index&cat=listOfIndices" }, "mvisIndexValue": { "endpointid": 600, "endpoint": "Single index value", "excel": "=CS.QUERY(\"Cryptocompare\",\"Single index value\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Single index value\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Single-index-value", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Index&cat=mvisIndexValue" }, "mvisHistoMinute": { "endpointid": 601, "endpoint": "Historical Index OHLC Minute", "excel": "=CS.QUERY(\"Cryptocompare\",\"Historical Index OHLC Minute\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Historical Index OHLC Minute\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Historical-Index-OHLC-Minute", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Index&cat=mvisHistoMinute" }, "mvisHistoHour": { "endpointid": 602, "endpoint": "Historical Index OHLC Hourly", "excel": "=CS.QUERY(\"Cryptocompare\",\"Historical Index OHLC Hourly\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Historical Index OHLC Hourly\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Historical-Index-OHLC-Hourly", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Index&cat=mvisHistoHour" }, "mvisHistoDay": { "endpointid": 603, "endpoint": "Historical Index OHLC Daily", "excel": "=CS.QUERY(\"Cryptocompare\",\"Historical Index OHLC Daily\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Historical Index OHLC Daily\",{\"api_key\",\"YOUR_API_KEY\";\"indexName\",\"MVDA\";\"aggregate\",\"3\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"extraParams\",\"CryptoSheets\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Historical-Index-OHLC-Daily", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Index&cat=mvisHistoDay" }, "blockchainLatest": { "endpointid": 753, "endpoint": "Latest", "excel": "=CS.QUERY(\"Cryptocompare\",\"Latest\",{\"fsym\",\"BTC\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Latest\",{\"fsym\",\"BTC\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Latest", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Blockchain&cat=blockchainLatest" }, "blockchainDay": { "endpointid": 754, "endpoint": "Historical Daily", "excel": "=CS.QUERY(\"Cryptocompare\",\"Historical Daily\",{\"fsym\",\"BTC\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Historical Daily\",{\"fsym\",\"BTC\";\"limit\",\"30\";\"toTs\",\"1452680400\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Historical-Daily", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=Blockchain&cat=blockchainDay" }, "tradingSignalsIntoTheBlockLatest": { "endpointid": 1605, "endpoint": "Trading Signals", "excel": "=CS.QUERY(\"Cryptocompare\",\"Trading Signals\",{\"fsym\",\"BTC\";\"api_key\",\"YOUR_API_KEY\"})", "googlesheets": "=CSQUERY(\"Cryptocompare\",\"Trading Signals\",{\"fsym\",\"BTC\";\"api_key\",\"YOUR_API_KEY\"})", "cetsDocsUrl": "https://docs.cryptosheets.com/providers/cryptocompare/Trading-Signals", "careDocsUrl": "https://min-api.cryptocompare.com/documentation?key=TradingSignals&cat=tradingSignalsIntoTheBlockLatest" } } CCC.API.STREAMING = {}; CCC.API.STREAMING.streamerTypes = { "Connection": { "Name": "Connection", "Expanded": true, "SubCategories": { "HowToConnect": { "Name": "How To Connect", "NewUntil": "2015-01-01", "HasDemo": false, "Info": { "Description": "

The CryptoCompare streaming API can be accessed via a websocket connection. Once connected, users can subscribe and unsubscribe to channels. Helper API endpoints can be used to find all the desired channels, for example top pairs per volume or market\n cap, top exchanges by pair, etc. You will need an API key to be able to stream data.

\n
\n
WebSocket Base URL: wss://streamer.cryptocompare.com/v2
\n
\n

Authentication

\n

To be able to stream data you will need an API key. There are 2 ways of passing an API key:

\n

API KEY in URL - just append ? or &api_key={your_api_key} the the end of your connection url (e.g. wss://streamer.cryptocompare.com/v2?api_key={your_api_key})

\n

KEY in HEADER - add the following header to your request: authorization: Apikey {your_api_key}.

\n
\n Read this tutorial on how to generate a free API key\n
\n

Some channels are only available for Commercial, Commercial Pro or Enterprise customers. Please refer to the Pricing page for further information.

\n\n

Subscription

\n

Once connected, subscribe to your desired channels using the subscription ID. For example to subscribe to the CryptoCompare Aggregate Index for Bitcoin in USD, your subscription ID will be 5~CCCAGG~BTC~USD. You can send a list of subscriptions in an array\n to subscribe to all channels of interest at once.

\n

Your subscription message should be:

\n
{\n \"action\": \"SubAdd\",\n \"subs\": [\"5~CCCAGG~BTC~USD\", \"0~Coinbase~ETH~USD\", \"2~Binance~BTC~USDT\"]\n}\n
\n\n\n

Your unsubscribe message should be:

\n\n
{\n \"action\": \"SubRemove\",\n \"subs\": [\"5~CCCAGG~BTC~USD\", \"0~Coinbase~ETH~USD\", \"2~Binance~BTC~USDT\"]\n}\n
\n\n

\n You can subscribe to the following channels:\n

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Type\n \n Channel\n \n Subscription\n \n Example\n
\n 0\n \n Trade\n \n 0~{exchange}~{base}~{quote}\n \n 0~Coinbase~BTC~USD\n
\n 2\n \n Ticker\n \n 2~{exchange}~{base}~{quote}\n \n 2~Coinbase~BTC~USD\n
\n 5\n \n Aggregate Index (CCCAGG)\n \n 5~CCCAGG~{base}~{quote}\n \n 5~CCCAGG~BTC~USD\n
\n 8\n \n Order Book L2\n \n 8~{exchange}~{base}~{quote}\n \n 8~Coinbase~BTC~USD\n
\n 11\n \n Full Volume\n \n 11~{base}\n \n 11~BTC\n
\n 21\n \n Full Top Tier Volume\n \n 21~{base}\n \n 21~BTC\n
\n 24\n \n OHLC Candles\n \n 24~{exchange or CCCAGG}~{base}~{quote}\n \n 24~CCCAGG~BTC~USD\n
\n 30\n \n Top of Order Book\n \n 30~{exchange}~{base}~{quote}\n \n 30~Coinbase~BTC~USD\n
\n\n

Re-connection or stale connection logic

\n

You should always wait at least 5 seconds to reconnect if we disconnect your socket client or you decide to disconnect and reconnect.

\n

Reasons for disconnection:\n

\n

\n\n

Stale connection logic / reasons to drop connection and reconnect on your side:\n

\n

\n\n

Message Types

\n

Once connected, the following response messages will be sent to acknowledge your actions or raise any errors.

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Type\n \n Message\n \n Description\n
\n 20\n \n STREAMERWELCOME\n \n Your first message on connection. It has information about your rate limits on opening sockets, server stats and other useful debugging information.\n
\n 16\n \n SUBSCRIBECOMPLETE\n \n Subscription done and first payload sent.\n
\n 3\n \n LOADCOMPLETE\n \n All subscriptions done and all payloads sent.\n
\n 17\n \n UNSUBSCRIBECOMPLETE\n \n Subscription removal done.\n
\n 18\n \n UNSUBSCRIBEALLCOMPLETE\n \n All subscription removals done.\n
\n 999\n \n HEARTBEAT\n \n Message sent every 1 minute\n
\n 401\n \n UNAUTHORIZED\n \n Your API key is missing or invalid, or does not have access to requested data.\n
\n 429\n \n RATE_LIMIT_OPENING_SOCKETS_TOO_FAST\n \n Please spread out opening new connections. The limits are: month: 20000, day: 10000, hour: 1200, minute: 60, second: 30.\n
\n 429\n \n TOO_MANY_SOCKETS_MAX_{X}_PER_CLIENT\n \n Number of open sockets exceeded maximum. (For free API keys, this is 1)\n
\n 429\n \n TOO_MANY_SUBSCRIPTIONS_MAX_{X}_PER_SOCKET\n \n Number of subscriptions exceeded maximum. (For free API keys, this is 600)\n
\n 500\n \n INVALID_JSON\n \n Sent message was invalid JSON.\n
\n 500\n \n INVALID_SUB\n \n Subscription is invalid.\n
\n 500\n \n INVALID_PARAMETER\n \n Invalid message parameter. Either invalid action or subs format.\n
\n 500\n \n SUBSCRIPTION_UNRECOGNIZED\n \n Subscription to be removed not found.\n
\n 500\n \n SUBSCRIPTION_ALREADY_ACTIVE\n \n You subscribed to a channel that already exists\n
\n 500\n \n FORCE_DISCONNECT\n \n You had two slow (over 10 seconds) pong responses in a row. Please reconnect.\n
\n\n

Examples

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Type\n \n Response\n
\n 20\n \n {\"TYPE\":\"20\", \"MESSAGE\":\"STREAMERWELCOME\", \"SERVER_UPTIME_SECONDS\":6, \"SERVER_NAME\":\"ccc-streamer01\", \"SERVER_TIME_MS\":1593768260252, \"CLIENT_ID\":5509, \"DATA_FORMAT\":\"JSON\", \"SOCKETS_ACTIVE\":1, \"SOCKETS_REMAINING\":0, \"RATELIMIT_MAX_SECOND\":30, \"RATELIMIT_MAX_MINUTE\":60, \"RATELIMIT_MAX_HOUR\":1200, \"RATELIMIT_MAX_DAY\":10000, \"RATELIMIT_MAX_MONTH\":20000, \"RATELIMIT_REMAINING_SECOND\":29, \"RATELIMIT_REMAINING_MINUTE\":59, \"RATELIMIT_REMAINING_HOUR\":1199, \"RATELIMIT_REMAINING_DAY\":9999, \"RATELIMIT_REMAINING_MONTH\":19981}\n
\n 16\n \n {\"TYPE\":\"16\", \"MESSAGE\":\"SUBSCRIBECOMPLETE\", \"SUB\":\"0~Coinbase~ETH~BTC\"}\n
\n 3\n \n \n {\"TYPE\":\"3\", \"MESSAGE\":\"LOADCOMPLETE\", \"INFO\":\"All your valid subs have been loaded.\"}\n \n
\n 17\n \n {\"TYPE\":\"17\", \"MESSAGE\":\"UNSUBSCRIBECOMPLETE\", \"SUB\":\"0~Coinbase~ETH~BTC\"}\n
\n 18\n \n \n {\"TYPE\":\"18\", \"MESSAGE\":\"UNSUBSCRIBEALLCOMPLETE\", \"INFO\":\"Removed 1\n subs.\", \"INFO_OBJ\":{\"valid\":1, \"invalid\":0}}\n \n
\n 999\n \n {\"TYPE\":\"999\", \"MESSAGE\":\"HEARTBEAT\", \"TIMEMS\":1582817678330}\n
\n 401\n \n \n {\"TYPE\":\"401\", \"MESSAGE\":\"UNAUTHORIZED\",\"PARAMETER\": \"format\",\"INFO\":\"We only support JSON format with a valid api_key.\"}\n \n
\n", "StreamerWelcomeResponseFields": { "TYPE": { "Mask": 0, "Description": "Type of the message, this is 20 for the streamer welcome message.", "Type": "string", "Show": true, "Required": true }, "MESSAGE": { "Mask": 0, "Description": "A string representation of the type, you should never use this in code as it might chnage, always use the type.", "Type": "string", "Show": true, "Required": true }, "SERVER_UPTIME_SECONDS": { "Mask": 0, "Description": "The server uptime in seconds. You can use this to very a restart on our side.", "Type": "number", "Show": true, "Required": true }, "SERVER_NAME": { "Mask": 0, "Description": "The name of the streaming server you are connected to.", "Type": "string", "Show": true, "Required": true }, "SERVER_TIME_MS": { "Mask": 0, "Description": "The server timestamp in milliseconds.", "Type": "number", "Show": true, "Required": true }, "CLIENT_ID": { "Mask": 0, "Description": "The id of the account the ApiKey belongs to.", "Type": "string", "Show": true, "Required": true }, "DATA_FORMAT": { "Mask": 0, "Description": "The format you are receiving data in. Can be either JSON or streamer.", "Type": "string", "Show": true, "Required": true }, "SOCKET_ID": { "Mask": 0, "Description": "The unique ID this socket was assigned on the socket initiation", "Type": "string", "Show": true, "Required": true }, "SOCKETS_ACTIVE": { "Mask": 1, "Description": "The total current active sockets for your account.", "Type": "number", "Show": true, "Required": false }, "SOCKETS_REMAINING": { "Mask": 2, "Description": "The total sockets still available for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_MAX_SECOND": { "Mask": 4, "Description": "The maximum sockets connections or calls per second for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_MAX_MINUTE": { "Mask": 8, "Description": "The maximum sockets connections or calls per minute for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_MAX_HOUR": { "Mask": 16, "Description": "The maximum sockets connections or calls per hour for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_MAX_DAY": { "Mask": 32, "Description": "The maximum sockets connections or calls per day for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_MAX_MONTH": { "Mask": 64, "Description": "The maximum sockets connections or calls per month for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_REMAINING_SECOND": { "Mask": 128, "Description": "The total socket connections or calls left in the current second for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_REMAINING_MINUTE": { "Mask": 256, "Description": "The total socket connections or calls left in the current minute for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_REMAINING_HOUR": { "Mask": 512, "Description": "The total socket connections or calls left in the current hour for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_REMAINING_DAY": { "Mask": 1024, "Description": "The total socket connections or calls left in the current day for your account.", "Type": "number", "Show": true, "Required": false }, "RATELIMIT_REMAINING_MONTH": { "Mask": 2048, "Description": "The total socket connections or calls left in the current month for your account.", "Type": "number", "Show": true, "Required": false } } } } } }, "Channels": { "Name": "Channels", "Expanded": true, "SubCategories": { "Trade": { "Name": "Trade", "NewUntil": "2015-01-01", "HasDemo": true, "Info": { "Type": "0", "ResponseFields": { "TYPE": { "Description": "Type of the message, this is 0 for trade type messages.", "Type": "string", "Required": true }, "M": { "Description": "The market / exchange you have requested (name of the market / exchange e.g. Coinbase, Kraken, etc.)", "Type": "string", "Required": true }, "FSYM": { "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Required": true }, "TSYM": { "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Type": "string", "Required": true }, "F": { "Description": "The flag for the trade as a bitmask: &1 for SELL, &2 for BUY, &4 for UNKNOWN and &8 for REVERSED (inverted). A flag of 1 would be a SELL, a flag of 9 would be a SELL + the trade was REVERSED (inverted). We reverse trades when we think the dominant pair should be on the right hand side of the trade. Uniswap for example has ETH trading into a lot of symbols, we record it as the other symbols trading into ETH and we invert the trade. We only use UNKNOWN when the underlying market / exchange API does not provide a side", "Type": "string", "Required": true }, "ID": { "Description": "The trade id as reported by the market / exchange or the timestamp in seconds + 0 - 999 if they do not provide a trade id (for uniqueness under the assumption that there would not be more than 999 trades in the same second for exchanges that do not provide a trade id)", "Type": "string", "Required": false }, "TS": { "Description": "The timestamp in seconds as reported by the market / exchange or the received timestamp if the market / exchange does not provide one.", "Type": "timestamp", "Required": false }, "Q": { "Description": "The from asset (base symbol / coin) volume of the trade (for a BTC-USD trade, how much BTC was traded at the trade price)", "Type": "number", "Required": false }, "P": { "Description": "The price in the to asset (quote / counter symbol / coin) of the trade (for a BTC-USD trade, how much was paid for one BTC in USD)", "Type": "number", "Required": false }, "TOTAL": { "Description": "The total volume in the to asset (quote / counter symbol / coin) of the trade (it is always Q * P so for a BTC-USD trade, how much USD was paid in total for the volume of BTC traded)", "Type": "number", "Required": false }, "RTS": { "Description": "The timestamp in seconds when we received the trade. This varies from a few millisconds from the trade taking place on the market / exchange to a few seconds depending on the market / exchange API options / rate limits", "Type": "timestamp", "Required": false }, "CCSEQ": { "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, only available for a subset of markets / exchanges.", "Type": "number", "Required": false }, "TSNS": { "Description": "The nanosecond part of the reported timestamp, only available for a subset of markets / exchanges", "Type": "number", "Required": false }, "RTSNS": { "Description": "The nanosecond part of the received timestamp, only available for a subset of markets / exchanges", "Type": "number", "Required": false } }, "UnpackFields": { "TYPE": 0, "M": 0, "FSYM": 0, "TSYM": 0, "F": 0, "ID": 1, "TS": 2, "Q": 4, "P": 8, "TOTAL": 16, "RTS": 32, "CCSEQ": 64, "TSNS": 128, "RTSNS": 256 }, "Description": "

Subscribe to trades by specifying the market / exchange, base and quote currency in the following format:

\n
0~{exchange}~{base}~{quote}
\n

Upon request, high tier Enterprise clients are able to receive all trades across all markets, but also all trades on a desired market / exchange with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 0~*~BTC~USD would give all trade snapshots and updates for BTC/USD across all markets BTC/USD trades as a pair.

\n
0~*~*~* (all trade snapshots and updates across all markets / exchanges)\n0~{exchange}~*~* (all trade snapshots and updates across one market / exchange)\n0~{exchange}~{base}~* (all trade snapshots and updates across one market / exchange for a specific base symbol)\n0~*~{base}~{quote} (all trade snapshots and updates across all markets / exchanges for a specific base - quote pair)
\n\n

You will always get the latest 20 trades when you subscribe.

\n", "Example": "0~Coinbase~BTC~USD" } }, "Ticker": { "Name": "Ticker", "NewUntil": "2015-01-01", "HasDemo": true, "Info": { "Type": "2", "ResponseFields": { "TYPE": { "Description": "Type of the message, for market / ticker data it is 2 and for Aggregate Index (CCCAGG) data it is 5", "Type": "string", "Show": false, "Required": true, "Request": true }, "MARKET": { "Description": "The market / exchange you have requested (name of the market e.g. Coinbase, Kraken, etc.)", "Type": "string", "Show": true, "Filter": "Market", "Required": true, "Request": true }, "FROMSYMBOL": { "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": false, "Required": true, "Request": true }, "TOSYMBOL": { "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Type": "string", "Show": false, "Required": true, "Request": true }, "FLAGS": { "Description": "The flags for the latest update: UP, DOWN, UNCHANGED, etc. (bitmask order of bits is MEDIANUNCHANGED(100000000000), MEDIANDOWN(10000000000), MEDIANUP(1000000000), ASKUNCHANGED(100000000), ASKDOWN(10000000), ASKUP(1000000), BIDUNCHANGED(100000), BIDDOWN(10000), BIDUP(1000), PRICEUNCHANGED(100), PRICEDOWN(10), PRICEUP(1) you need to compute FLAGS & 1 for PRICEUP... FLAGS & 512(100000000000) for MEDIANUNCHANGED )", "Type": "number", "Show": false, "Required": true }, "PRICE": { "Description": "The last trade price / index price for the pair on the requested market / exchange / index ", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "BID": { "Description": "Latest BID price (not available for all markets / exchanges)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "ASK": { "Description": "Latest ASK price (not available for all markets / exchanges)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTUPDATE": { "Description": "The last time this pair was updated, for market / ticker data that is the last trade, for index data that is the last time the index was updated.", "Type": "timestamp", "Show": true, "Filter": "TimeAgo", "Required": false }, "MEDIAN": { "Description": "The mid price of the pair, only available on Aggregate Index (CCCAGG) and other indices is the median price of all the markets / exchanges included (we sort all the constituents by price and pick the middle one for even numbers of constituents or average the middle two for odd numbers)", "Type": "number", "Show": true, " Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTVOLUME": { "Description": "The from asset (base symbol/coin) volume of the last trade on the market / exchange / index", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "LASTVOLUMETO": { "Description": "The to asset (quote/counter symbol/coin) volume of the last trade on the market / exchange / index", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTTRADEID": { "Description": "The ID of the latest trade on market /ticker data messages (2) or the ID of the latest trade that had an impact on the CCCAGG / index (5)", "Type": "string", "Show": true, "Filter": "String", "Required": false }, "VOLUMEDAY": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the day so far, since 00:00 GMT", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUMEDAYTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the day so far, since 00:00 GMT", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "VOLUME24HOUR": { "Description": "The sum of all the trade volumes in the to asset (base symbol / coin) of the last 23 hours + current hour, this is a rolling volume (eg at 16:41 it is the sum of all the trade volumes between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUME24HOURTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the last 23 hours + current hour, this is a rolling volume (eg at 16:41 it is the sum of all the trade volumes between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPENDAY": { "Description": "The open price at 00:00 GMT, this is based on the last trade before the 00:00 GMT, it is not based on the first trade of the day. If there were no trades on the previous day then it is based on the last trade available", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGHDAY": { "Description": "The highest price since 00:00 GMT. Is is the max value between the highest trade price of the day and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOWDAY": { "Description": "The lowest price since 00:00 GMT. Is is the min value between the lowest trade price of the day and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPEN24HOUR": { "Description": "The price 23 hours + current hour ago, this is a rolling open that changes once an hour (eg at 16:41 it is the open price of 17:00 the previous day)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGH24HOUR": { "Description": "The highest price in the last 23 hours + current hour, this is a rolling high (eg at 16:41 it is the highest price between the open at 17:00 the previous day and all the trades seen between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOW24HOUR": { "Description": "The lowest price in the last 23 hours + current hour, this is a rolling low (eg at 16:41 it is the lowest price between the open at 17:00 the previous day and all the trades seen between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTMARKET": { "Description": "The latest market the pair traded on, only available on CCCAGG messages and it is used to show the market of the latest trade that was included in the CCCAGG index", "Type": "number", "Show": true, "Filter": "String", "Required": false }, "VOLUMEHOUR": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the hour so far", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUMEHOURTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the hour so far", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPENHOUR": { "Description": "The open price at the beginning of the hour, this is based on the last trade before the current hour, it is not based on the first trade of the hour. If there were no trades in the previous hour then it is based on the last trade available", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGHHOUR": { "Description": "The highest price since the beginning of the hour. Is is the max value between the highest trade price of the hour and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOWHOUR": { "Description": "The lowest price since the beginning of the hour. Is is the min value between the lowest trade price of the hour and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "TOPTIERVOLUME24HOUR": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the last 23 hours + current hour across exchanges that we rank as top tier, only available on CCCAGG / index messages", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "TOPTIERVOLUME24HOURTO": { "Description": "The sum of all the trade volumes in the to asset (base symbol / coin) of the last 23 hours + current hour across exchanges that we rank as top tier, only available on CCCAGG / index messages", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false } }, "UnpackFields": { "TYPE": 0, "MARKET": 0, "FROMSYMBOL": 0, "TOSYMBOL": 0, "FLAGS": 0, "PRICE": 1, "BID": 2, "ASK": 4, "LASTUPDATE": 8, "MEDIAN": 16, "LASTVOLUME": 32, "LASTVOLUMETO": 64, "LASTTRADEID": 128, "VOLUMEDAY": 256, "VOLUMEDAYTO": 512, "VOLUME24HOUR": 1024, "VOLUME24HOURTO": 2048, "OPENDAY": 4096, "HIGHDAY": 8192, "LOWDAY": 16384, "OPEN24HOUR": 32768, "HIGH24HOUR": 65536, "LOW24HOUR": 131072, "LASTMARKET": 262144, "VOLUMEHOUR": 524288, "VOLUMEHOURTO": 1048576, "OPENHOUR": 2097152, "HIGHHOUR": 4194304, "LOWHOUR": 8388608, "TOPTIERVOLUME24HOUR": 16777216, "TOPTIERVOLUME24HOURTO": 33554432 }, "Description": "

Subscribe to exchange ticker by specifying the exchange, base and quote currency in the following format:

\n
2~{exchange}~{base}~{quote}
\n

You will always receive a full snapshot with all the available fields when you subscribe and get an update with only the fields that changed for every underlying trade / order book update.\nWith a free API keys you will only get a maximum of one update per second.

\n

Upon request, high tier Enterprise clients are able to receive all ticker snapshots and updates across all markets, but also all ticker snapshots and updates on a desired market / exchange with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 2~*~BTC~USD would give all ticker snapshots and updates for BTC/USD across all markets BTC/USD trades as a pair.

\n
2~*~*~* (all ticker snapshots and updates across all markets / exchanges)\n2~{exchange}~*~* (all ticker snapshots and updates across one market / exchange)\n2~{exchange}~{base}~* (all ticker snapshots and updates across one market / exchange for a specific base symbol)\n2~*~{base}~{quote} (all ticker snapshots and updates across all markets / exchanges for a specific base - quote pair)
\n\n", "Example": "2~Coinbase~BTC~USD" } }, "AggregateIndex": { "Name": "Aggregate Index (CCCAGG)", "NewUntil": "2015-01-01", "HasDemo": true, "Info": { "Type": "5", "ResponseFields": { "TYPE": { "Description": "Type of the message, for market / ticker data it is 2 and for Aggregate Index (CCCAGG) data it is 5", "Type": "string", "Show": false, "Required": true, "Request": true }, "MARKET": { "Description": "The market / exchange you have requested (name of the market e.g. Coinbase, Kraken, etc.)", "Type": "string", "Show": true, "Filter": "Market", "Required": true, "Request": true }, "FROMSYMBOL": { "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": false, "Required": true, "Request": true }, "TOSYMBOL": { "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Type": "string", "Show": false, "Required": true, "Request": true }, "FLAGS": { "Description": "The flags for the latest update: UP, DOWN, UNCHANGED, etc. (bitmask order of bits is MEDIANUNCHANGED(100000000000), MEDIANDOWN(10000000000), MEDIANUP(1000000000), ASKUNCHANGED(100000000), ASKDOWN(10000000), ASKUP(1000000), BIDUNCHANGED(100000), BIDDOWN(10000), BIDUP(1000), PRICEUNCHANGED(100), PRICEDOWN(10), PRICEUP(1) you need to compute FLAGS & 1 for PRICEUP... FLAGS & 512(100000000000) for MEDIANUNCHANGED )", "Type": "number", "Show": false, "Required": true }, "PRICE": { "Description": "The last trade price / index price for the pair on the requested market / exchange / index ", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "BID": { "Description": "Latest BID price (not available for all markets / exchanges)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "ASK": { "Description": "Latest ASK price (not available for all markets / exchanges)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTUPDATE": { "Description": "The last time this pair was updated, for market / ticker data that is the last trade, for index data that is the last time the index was updated.", "Type": "timestamp", "Show": true, "Filter": "TimeAgo", "Required": false }, "MEDIAN": { "Description": "The mid price of the pair, only available on Aggregate Index (CCCAGG) and other indices is the median price of all the markets / exchanges included (we sort all the constituents by price and pick the middle one for even numbers of constituents or average the middle two for odd numbers)", "Type": "number", "Show": true, " Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTVOLUME": { "Description": "The from asset (base symbol/coin) volume of the last trade on the market / exchange / index", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "LASTVOLUMETO": { "Description": "The to asset (quote/counter symbol/coin) volume of the last trade on the market / exchange / index", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTTRADEID": { "Description": "The ID of the latest trade on market /ticker data messages (2) or the ID of the latest trade that had an impact on the CCCAGG / index (5)", "Type": "string", "Show": true, "Filter": "String", "Required": false }, "VOLUMEDAY": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the day so far, since 00:00 GMT", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUMEDAYTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the day so far, since 00:00 GMT", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "VOLUME24HOUR": { "Description": "The sum of all the trade volumes in the to asset (base symbol / coin) of the last 23 hours + current hour, this is a rolling volume (eg at 16:41 it is the sum of all the trade volumes between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUME24HOURTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the last 23 hours + current hour, this is a rolling volume (eg at 16:41 it is the sum of all the trade volumes between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPENDAY": { "Description": "The open price at 00:00 GMT, this is based on the last trade before the 00:00 GMT, it is not based on the first trade of the day. If there were no trades on the previous day then it is based on the last trade available", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGHDAY": { "Description": "The highest price since 00:00 GMT. Is is the max value between the highest trade price of the day and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOWDAY": { "Description": "The lowest price since 00:00 GMT. Is is the min value between the lowest trade price of the day and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPEN24HOUR": { "Description": "The price 23 hours + current hour ago, this is a rolling open that changes once an hour (eg at 16:41 it is the open price of 17:00 the previous day)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGH24HOUR": { "Description": "The highest price in the last 23 hours + current hour, this is a rolling high (eg at 16:41 it is the highest price between the open at 17:00 the previous day and all the trades seen between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOW24HOUR": { "Description": "The lowest price in the last 23 hours + current hour, this is a rolling low (eg at 16:41 it is the lowest price between the open at 17:00 the previous day and all the trades seen between 17:00 the previous day and 16:41 today)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LASTMARKET": { "Description": "The latest market the pair traded on, only available on CCCAGG messages and it is used to show the market of the latest trade that was included in the CCCAGG index", "Type": "number", "Show": true, "Filter": "String", "Required": false }, "VOLUMEHOUR": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the hour so far", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUMEHOURTO": { "Description": "The sum of all the trade volumes in to asset (quote/counter symbol/coin) of the hour so far", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "OPENHOUR": { "Description": "The open price at the beginning of the hour, this is based on the last trade before the current hour, it is not based on the first trade of the hour. If there were no trades in the previous hour then it is based on the last trade available", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "HIGHHOUR": { "Description": "The highest price since the beginning of the hour. Is is the max value between the highest trade price of the hour and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOWHOUR": { "Description": "The lowest price since the beginning of the hour. Is is the min value between the lowest trade price of the hour and the open", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "TOPTIERVOLUME24HOUR": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) of the last 23 hours + current hour across exchanges that we rank as top tier, only available on CCCAGG / index messages", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "TOPTIERVOLUME24HOURTO": { "Description": "The sum of all the trade volumes in the to asset (base symbol / coin) of the last 23 hours + current hour across exchanges that we rank as top tier, only available on CCCAGG / index messages", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "CURRENTSUPPLY": { "Description": "The total assets available at this point in time. Only available on JSON format subscriptions", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "CIRCULATINGSUPPLY": { "Description": "The total assets available at this point in time - the locked/burnt assets. Only available on JSON format subscriptions.", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "MAXSUPPLY": { "Description": "The total assets that will ever exist. Only available on JSON format subscriptions. If this is -1 it means that the instrument / asset has an unlimited max supply.", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "MKTCAPPENALTY": { "Description": "The percentage penalty applied when calculating the mkt cap numbers. This is a value our researchers fill in and it is used to apply a penalty on illiquid assets or assets that trade on lower ranked exchanges. Only available on JSON format subscriptions", "Type": "number", "Show": true, "Filter": "Number", "Required": false }, "CURRENTSUPPLYMKTCAP": { "Description": "PRICE * CURRENTSUPPLY - PRICE * CURRENTSUPPLY * MKTCAPPENALTY. Only available on JSON format subscriptions", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "CIRCULATINGSUPPLYMKTCAP": { "Description": "PRICE * CIRCULATINGSUPPLY - PRICE * CIRCULATINGSUPPLY * MKTCAPPENALTY. Only available on JSON format subscriptions.", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "MAXSUPPLYMKTCAP": { "Description": "PRICE * MAXSUPPLY - PRICE * MAXSUPPLY * MKTCAPPENALTY. Only available on JSON format subscriptions. If this is -1 it means that the instrument / asset has an unlimited max supply.", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false } }, "UnpackFields": { "TYPE": 0, "MARKET": 0, "FROMSYMBOL": 0, "TOSYMBOL": 0, "FLAGS": 0, "PRICE": 1, "BID": 2, "ASK": 4, "LASTUPDATE": 8, "MEDIAN": 16, "LASTVOLUME": 32, "LASTVOLUMETO": 64, "LASTTRADEID": 128, "VOLUMEDAY": 256, "VOLUMEDAYTO": 512, "VOLUME24HOUR": 1024, "VOLUME24HOURTO": 2048, "OPENDAY": 4096, "HIGHDAY": 8192, "LOWDAY": 16384, "OPEN24HOUR": 32768, "HIGH24HOUR": 65536, "LOW24HOUR": 131072, "LASTMARKET": 262144, "VOLUMEHOUR": 524288, "VOLUMEHOURTO": 1048576, "OPENHOUR": 2097152, "HIGHHOUR": 4194304, "LOWHOUR": 8388608, "TOPTIERVOLUME24HOUR": 16777216, "TOPTIERVOLUME24HOURTO": 33554432 }, "Description": "

Subscribe to the CryptoCompare Aggregate Index by specifying the base and quote currency in the following format:

\n
5~CCCAGG~{base}~{quote}
\n

You will always receive a full snapshot with all the available fields when you subscribe and get an update with only the fields that changed for every underlying trade / order book update.\nWith a free API keys you will only get a maximum of one update per second.

\n

More information on the methodology of the aggregation can be found here. To find out constituent exchanges in the index use this endpoint:

\n
\n Display CCCAGG Constituent Pairs\n
\n

Upon request, high tier Enterprise clients are able to receive all index updates across all markets, but also all index updates on a desired market / exchange with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 5~CCCAGG~BTC~* would give all index snapshots and updates for BTC across all markets BTC trades as a base symbol.

\n
5~*~*~* (all index snapshots and updates)\n5~{CCCAGG or other index}~*~* (all index snapshots and updates across one index family)\n5~{CCCAGG or other index}~{base}~* (all index snapshots and updates across one index family for a specific base symbol)\n5~*~{base}~{quote} (all index snapshots and updates across all index families for a specific base - quote pair)
\n", "Example": "5~CCCAGG~BTC~USD" } }, "OHLCCandles": { "Name": "OHLC Candles", "NewUntil": "2020-06-01", "HasDemo": true, "Info": { "Type": "24", "ResponseFields": { "TYPE": { "Description": "Type of the message, for histo updates this is type 24", "Type": "string", "Show": false, "Required": true }, "MARKET": { "Description": "The market you have requested (name of the market e.g. CCCAGG, Coinbase, Kraken, etc.)", "Type": "string", "Show": true, "Filter": "Market", "Required": true }, "FROMSYMBOL": { "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TOSYMBOL": { "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TS": { "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", "Type": "timestamp", "Show": true, "Filter": "Number", "Required": true }, "UNIT": { "Description": "The unit of the historical update: m for minute, H for hour and D for day.", "Type": "string", "Show": true, "Filter": "Unit", "Required": true }, "ACTION": { "Description": "The action for the messages, A for add / this is a new historical period, U for update when we send an update to an older historical period, I for init - when we first load the data or for an empty period (no trades so we just send an empty period, can be treated as an A if you want to store empty periods). You will always get and update (U) message on a time period you already know (you either had an A or an I for it). An add (A) would always represent a period that had trading data and an init (I) would be either a time period in the initial snapshot or the start of a new empty time period.", "Type": "string", "Show": true, "Filter": "Action", "Required": true }, "OPEN": { "Description": "The open price for the historical period, this is based on the closest trade before the period start", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL" }, "HIGH": { "Description": "The max between the open and the highest trade price in this time period (same as open when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "LOW": { "Description": "The min between the open and the lowest trade price in this time period (same as open when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "CLOSE": { "Description": "The price of the last trade in this time period (same as open when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "VOLUMEFROM": { "Description": "The sum of all the trade volumes in the from asset (base symbol / coin) for the time period (0 when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FROMSYMBOL", "Required": false }, "VOLUMETO": { "Description": "The sum of all the trade volumes in the To asset (quote/counter symbol/coin) for the time period (0 when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TOSYMBOL", "Required": false }, "TOTALTRADES": { "Description": "The total number of trades seen in this time period (0 when there no trades in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Required": false }, "FIRSTTS": { "Description": "The timestamp in seconds of the first trade in this time period (only available when we have at least one trade in the time period).", "Type": "timestamp", "Show": true, "Filter": "Number", "Required": false }, "LASTTS": { "Description": "The timestamp in seconds of the last trade in this time period (only available when we have at least one trade in the time period).", "Type": "timestamp", "Show": true, "Filter": "Number", "Required": false }, "FIRSTPRICE": { "Description": "The open based on the first trade in the time period (only available when we have at least one trade in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Required": false }, "MAXPRICE": { "Description": "The highest value of the trades in the time period (only available when we have at least one trade in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Required": false }, "MINPRICE": { "Description": "The lowest value of the trades in the time period (only available when we have at least one trade in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Required": false }, "LASTPRICE": { "Description": "The last trade price in the time period (only available when we have at least one trade in the time period).", "Type": "number", "Show": true, "Filter": "Number", "Required": false } }, "UnpackFields": { "TYPE": 0, "MARKET": 0, "FROMSYMBOL": 0, "TOSYMBOL": 0, "TS": 0, "UNIT": 0, "ACTION": 0, "OPEN": 1, "HIGH": 2, "LOW": 4, "CLOSE": 8, "VOLUMEFROM": 16, "VOLUMETO": 32, "TOTALTRADES": 64, "FIRSTTS": 128, "LASTTS": 256, "FIRSTPRICE": 512, "MAXPRICE": 1024, "MINPRICE": 2048, "LASTPRICE": 4096 }, "Description": "

Subscribe to market / exchange historical data by specifying the exchange, base, quote and period (m, H or D for minute, hour and daily candles respectively):

\n
24~{exchange or CCCAGG}~{base}~{quote}~{period}
\n

Upon request, high tier Enterprise clients are able to receive all updates across all markets, but also all updates on a desired market / exchange or a specific symbol or a specific time period with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 24~*~BTC~USD~* would give you minute, hour and day historical streaming for BTC/USD across all markets BTC/USD trades as a pair.\n

\n
24~*~*~*~* (all historical updates across all markets / exchanges)\n24~{exchange or CCCAGG}~*~*~* (all historical updates across one market / exchange)\n24~{exchange or CCCAGG}~*~*~{period} (all historical updates across one market / exchange for a specific time period)\n24~{exchange or CCCAGG}~{base}~*~* (all historical updates across one market / exchange for a specific base symbol on all periods)
\n

Commercial and Commercial Pro level clients have access to minute, hour and day updates for a desired pair on a market / exchange with just one subscription

\n
24~{exchange or CCCAGG}~{base}~{quote}~*
\n

A few things to keep in mind when consuming OHLCV data:\n

\n

\n

All premium accounts also receive the latest 30 minutes, 24 hours and 7 days when they subscribe to a pair. Please refer to the Pricing page for further information.

\n", "Example": "24~CCCAGG~BTC~USD~m" } }, "FullVolume": { "Name": "Full Volume", "NewUntil": "2020-06-01", "HasDemo": true, "Info": { "Type": "11", "ResponseFields": { "TYPE": { "Description": "Type of the message, this is 11 for a full volume update.", "Type": "string", "Show": false, "Required": true }, "SYMBOL": { "Description": "The mapped asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": true, "Required": true }, "FULLVOLUME": { "Description": "The asset (base symbol/coin) volume over a 23 hours + current hour total volume across all trading pairs on all markets / exchanges we have integrated with", "Type": "string", "Show": true, "Required": true, "Filter": "Number", "Symbol": "SYMBOL" } }, "UnpackFields": { "TYPE": 0, "SYMBOL": 0, "FULLVOLUME": 0 }, "Description": "

Subscribe to full volume by specifying the mapped asset (base symbol / coin) in the following format:

\n
11~{base}
\n

Full volume is a real-time updating 24 hour volume, aggregated across all markets and all exchanges. The volume is denominated in the base currency.

", "Example": "11~BTC" } }, "TopTierFullVolume": { "Name": "Top Tier Full Volume", "NewUntil": "2020-05-01", "HasDemo": true, "Info": { "Type": "21", "ResponseFields": { "TYPE": { "Description": "Type of the message, this is 21 for a top tier full volume update.", "Type": "string", "Show": false, "Required": true }, "SYMBOL": { "Description": "The mapped asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": true, "Required": true }, "TOPTIERFULLVOLUME": { "Description": "The asset (base symbol/coin) volume over a 23 hours + current hour total volume across all trading pairs on all top tier markets / exchanges (a top tier market / exchange is a trading venue that is ranked B and above in our exchange benchmark)", "Type": "string", "Show": true, "Required": true, "Filter": "Number", "Symbol": "SYMBOL" } }, "UnpackFields": { "TYPE": 0, "SYMBOL": 0, "TOPTIERFULLVOLUME": 0 }, "Description": "

Subscribe to top tier full volume by specifying the the mapped asset (base symbol / coin) in the following format:

\n
21~{base}
\n

Top tier full volume is a real-time updating 24 hour volume, aggregated across all markets on top tier exchanges. The volume is denominated in the base currency. Top tier exchanges are exchanges with a ranking of AA, A or B based on the latest CryptoCompare Exchange Benchmark.

", "Example": "21~BTC" } }, "OrderbookL2": { "Name": "Order Book L2", "NewUntil": "2020-07-01", "HasDemo": true, "Info": { "Type": "8", "ResponseFields": { "TYPE": { "Description": "Type of the message, this is 8 for an order book update and 9 for an order book snapshot.", "Type": "string", "Show": false, "Required": true }, "M": { "Description": "The market you have requested (name of the market e.g. Coinbase, Kraken, etc)", "Type": "string", "Show": true, "Filter": "Market", "Required": true }, "FSYM": { "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TSYM": { "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "SIDE": { "Description": "The side is 0 for BID and 1 for ASK", "Type": "number", "Show": true, "Filter": "SideFlag", "Required": true }, "ACTION": { "Description": "The action you need to apply on the snapshot, 1 for ADD (add this position to your ordebook), 2 for REMOVE (take this position out of your orderbook, REMOVE orders also have a quantity of 0), 3 for NOACTION (you should not see these messages they represent updates that we receive from the exchange but have no impact on the orderbook) and 4 for CHANGE/UPDATE (update the available quantity for this position)", "Type": "number", "Show": true, "Filter": "OrderFlag", "Required": true }, "CCSEQ": { "Description": "Our internal order book sequence, the snapshot you get when you subscribe will have the starting sequence and all other updates will be increments of 1 on the sequence. This does not reset.", "Type": "number", "Show": false, "Required": true }, "P": { "Description": "The price in the to asset (quote/counter symbol/coin) of the order book position (e.g. for a BTC-USD order book update you would get price in USD how much do i need to pay per BTC to hit this possition)", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "TSYM", "Required": true }, "Q": { "Description": "The from asset (base symbol/coin) volume of position (e.g. for a BTC-USD order book update you would get volume in BTC - I can buy or sell x BTC at the y price).", "Type": "number", "Show": true, "Filter": "Number", "Symbol": "FSYM", "Required": true }, "SEQ": { "Description": "The external exchange sequence if they have one.", "Type": "number", "Show": false, "Required": false }, "REPORTEDNS": { "Description": "The external exchange reported timestamp in nanoseconds. If they do not provide one, we store the time we receive the message in this field.", "Type": "timestamp", "Show": false, "Filter": "Number", "Required": false }, "DELAYNS": { "Description": "The difference in nanoseconds between the REPORTEDNS and the time we publish the update on our internal network (network delay from exchange to us + internal aggregation delay + internal delay in propagating the message)", "Type": "number", "Show": false, "Filter": "Number", "Required": false } }, "UnpackFields": { "TYPE": 0, "M": 0, "FSYM": 0, "TSYM": 0, "SIDE": 0, "ACTION": 0, "CCSEQ": 0, "P": 0, "Q": 0, "SEQ": 1, "REPORTEDNS": 2, "DELAYNS": 4 }, "UnpackFieldsSnapshot": { "TYPE": { "Mask": 0, "Type": "string", "Description": "Type of the message, this is 9 for a top of order book.", "Show": false, "Required": true }, "M": { "Mask": 0, "Type": "string", "Description": "The market you have requested (name of the market e.g. Coinbase, Kraken, etc)", "Show": true, "Filter": "Market", "Required": true }, "FSYM": { "Mask": 0, "Type": "string", "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.)", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TSYM": { "Mask": 0, "Type": "string", "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.)", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "CCSEQ": { "Mask": 0, "Type": "number", "Description": "Our internal top of order book sequence, the snapshot you get when you subscribe will have the starting sequence and all other updates will be increments of 1 on the sequence. This does not reset.", "Show": false, "Required": true }, "BID": { "Mask": 0, "Description": "Array of bids containing the price and the volume for the positions", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number" }, "Q": { "Mask": 0, "Type": "number" } }, "Show": true, "Filter": "Number", "Symbol": "TSYM", "Required": false }, "ASK": { "Mask": 0, "Description": "Array of asks containing the price and the volume for the positions", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number" }, "Q": { "Mask": 0, "Type": "number" } }, "Show": true, "Filter": "Number", "Symbol": "FSYM", "Required": false } }, "Description": "

Subscribe to level 2 order book updates by specifying the exchange, base and quote currency in the following format (only 8~Binance~BTC~USDT is available for free API key users):

\n
8~{exchange}~{base}~{quote}
\n

Upon request, high tier Enterprise clients are able to receive all order book snapshots and updates across all markets, but also all order book snapshots and updates on a desired market / exchange with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 8~*~BTC~USD would give all order book snapshots and updates for BTC/USD across all markets BTC/USD trades as a pair.

\n
8~*~*~* (all order book snapshots and updates across all markets / exchanges)\n8~{exchange}~*~* (all order book snapshots and updates across one market / exchange)\n8~{exchange}~{base}~* (all order book snapshots and updates across one market / exchange for a specific base symbol)\n8~*~{base}~{quote} (all order book snapshots and updates across all markets / exchanges for a specific base - quote pair)
\n\n

A few things to keep in mind when consuming order book level 2 data:\n

\n

\n", "Example": "8~Binance~BTC~USDT" } }, "TopOfBook": { "Name": "Top of Order Book", "NewUntil": "2020-08-01", "HasDemo": true, "Info": { "Type": "30", "ResponseFields": { "TYPE": { "Mask": 0, "Description": "Type of the message, this is 30 for a top of order book.", "Type": "string", "Show": false, "Required": true }, "M": { "Mask": 0, "Description": "The market you have requested (name of the market e.g. Coinbase, Kraken, etc.).", "Type": "string", "Show": true, "Filter": "Market", "Required": true }, "FSYM": { "Mask": 0, "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.).", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TSYM": { "Mask": 0, "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.).", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "CCSEQ": { "Mask": 0, "Description": "Our internal top of order book sequence, the snapshot you get when you subscribe will have the starting sequence and all other updates will be increments of 1 on the sequence. This does not reset.", "Type": "number", "Show": false, "Required": true }, "BID": { "Mask": 1, "Description": "Array of bids containing the price, the volume and the time for the positions, you will always have at least a BID or an ASK field", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number", "Symbol": "TSYM" }, "Q": { "Mask": 0, "Type": "number", "Symbol": "FSYM" }, "REPORTEDNS": { "Mask": 1, "Type": "string" } }, "Show": true, "Required": false }, "ASK": { "Mask": 2, "Description": "Array of asks containing the price, the volume and the time for the positions, you will always have at least a BID or an ASK field", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number", "Symbol": "TSYM" }, "Q": { "Mask": 0, "Type": "number", "Symbol": "FSYM" }, "REPORTEDNS": { "Mask": 1, "Type": "string" } }, "Show": true, "Required": false } }, "UnpackFields": { "TYPE": { "Mask": 0, "Description": "Type of the message, this is 30 for a top of order book.", "Type": "string", "Show": false, "Required": true }, "M": { "Mask": 0, "Description": "The market you have requested (name of the market e.g. Coinbase, Kraken, etc.).", "Type": "string", "Show": true, "Filter": "Market", "Required": true }, "FSYM": { "Mask": 0, "Description": "The mapped from asset (base symbol / coin) you have requested (e.g. BTC, ETH, etc.).", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "TSYM": { "Mask": 0, "Description": "The mapped to asset (quote/counter symbol/coin) you have requested (e.g. BTC, USD, etc.).", "Type": "string", "Show": true, "Filter": "CurrencySymbol", "Required": true }, "CCSEQ": { "Mask": 0, "Description": "Our internal top of order book sequence, the snapshot you get when you subscribe will have the starting sequence and all other updates will be increments of 1 on the sequence. This does not reset.", "Type": "number", "Show": false, "Required": true }, "BID": { "Mask": 1, "Description": "Array of bids containing the price, the volume and the time for the positions, you will always have at least a BID or an ASK field", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number", "Symbol": "TSYM" }, "Q": { "Mask": 0, "Type": "number", "Symbol": "FSYM" }, "REPORTEDNS": { "Mask": 1, "Type": "string" } }, "Show": true, "Required": false }, "ASK": { "Mask": 2, "Description": "Array of asks containing the price, the volume and the time for the positions, you will always have at least a BID or an ASK field", "Type": "array", "ArrayDataFields": { "P": { "Mask": 0, "Type": "number", "Symbol": "TSYM" }, "Q": { "Mask": 0, "Type": "number", "Symbol": "FSYM" }, "REPORTEDNS": { "Mask": 1, "Type": "string" } }, "Show": true, "Required": false } }, "Description": "

Subscribe to top of order book updates by specifying the exchange, base and quote currency in the following format (only 30~Binance~BTC~USDT is available for free API key users):

\n
30~{exchange}~{base}~{quote}
\n

Upon request, high tier Enterprise clients are able to receive all top of book snapshots and updates across all markets, but also all top of book snapshots and updates on a desired market / exchange with just one subscription.\nTo use this feature, just replace * with any part of the message you want populated by us. For example 30~*~BTC~USD would give all top of order book snapshots and updates for BTC/USD across all markets BTC/USD trades as a pair.

\n
30~*~*~* (all top of order book snapshots and updates across all markets / exchanges)\n30~{exchange}~*~* (all top of order book snapshots and updates across one market / exchange)\n30~{exchange}~{base}~* (all top of order book snapshots and updates across one market / exchange for a specific base symbol)\n30~*~{base}~{quote} (all top of order book snapshots and updates across all markets / exchanges for a specific base - quote pair)
\n\n

A few things to keep in mind when consuming ordebrook level 2 data:\n

\n

\n", "Example": "30~Binance~BTC~USDT" } } } } }; CCC.API.STREAMING.streamerUnpack = {}; CCC.API.STREAMING.streamerUnpack.StreamerWelcome = function(tradeString, fieldDefinition) { var valuesArray = tradeString.split("~"); var valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); var unpackedWelcomeMessage = {}; var currentField = 0; for (var property in fieldDefinition) { if (fieldDefinition[property].Mask === 0 || maskInt & fieldDefinition[property].Mask) { if (fieldDefinition[property].Type === 'number') { unpackedWelcomeMessage[property] = parseFloat(valuesArray[currentField]); } else { unpackedWelcomeMessage[property] = valuesArray[currentField]; } currentField++; } } return unpackedWelcomeMessage; }; CCC.API.STREAMING.streamerUnpack.Trade = function(tradeString, fieldDefinition) { var valuesArray = tradeString.split("~"); var valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); var unpackedTrade = {}; var currentField = 0; for (var property in fieldDefinition) { if (fieldDefinition[property] === 0) { unpackedTrade[property] = valuesArray[currentField]; currentField++; } else if (maskInt & fieldDefinition[property]) { if (fieldDefinition[property] === 1) { /*if it's a trade ID then still convert it as string, otherwise, it will be a number*/ unpackedTrade[property] = valuesArray[currentField]; } else { unpackedTrade[property] = parseFloat(valuesArray[currentField]); } currentField++; } } return unpackedTrade; }; CCC.API.STREAMING.streamerUnpack.Ticker = function(currentString, fieldDefinition) { var valuesArray = currentString.split("~"); var valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); var unpackedCurrent = {}; var currentField = 0; for (var property in fieldDefinition) { if (fieldDefinition[property] === 0) { unpackedCurrent[property] = valuesArray[currentField]; currentField++; } else if (maskInt & fieldDefinition[property]) { /*i know this is a hack, for cccagg, future coder please don't hate me:(, i did this to avoid subscribing to trades as well in order to show the last market*/ if (property === 'LASTMARKET' || property === 'LASTTRADEID') { unpackedCurrent[property] = valuesArray[currentField]; } else { unpackedCurrent[property] = parseFloat(valuesArray[currentField]); } currentField++; } } return unpackedCurrent; }; CCC.API.STREAMING.streamerUnpack.AggregateIndex = function(currentString, fieldDefinition) { var valuesArray = currentString.split("~"); var valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); var unpackedCurrent = {}; var currentField = 0; for (var property in fieldDefinition) { if (fieldDefinition[property] === 0) { unpackedCurrent[property] = valuesArray[currentField]; currentField++; } else if (maskInt & fieldDefinition[property]) { /*i know this is a hack, for cccagg, future coder please don't hate me:(, i did this to avoid subscribing to trades as well in order to show the last market*/ if (property === 'LASTMARKET' || property === 'LASTTRADEID') { unpackedCurrent[property] = valuesArray[currentField]; } else { unpackedCurrent[property] = parseFloat(valuesArray[currentField]); } currentField++; } } return unpackedCurrent; }; CCC.API.STREAMING.streamerUnpack.OHLCCandles = function(histoString, fieldDefinition) { let valuesArray = histoString.split("~"); let valuesArrayLenght = valuesArray.length; let mask = valuesArray[valuesArrayLenght - 1]; let maskInt = parseInt(mask, 16); let unpackedHisto = {}; let currentField = 0; for (let property in fieldDefinition) { if (fieldDefinition[property] === 0) { if (property === 'TS') { unpackedHisto[property] = parseInt(valuesArray[currentField], 10); } else { unpackedHisto[property] = valuesArray[currentField]; } currentField++; } else if (maskInt & fieldDefinition[property]) { unpackedHisto[property] = parseFloat(valuesArray[currentField]); currentField++; } } return unpackedHisto; }; CCC.API.STREAMING.streamerUnpack.Trade = function(tradeString, fieldDefinition) { var valuesArray = tradeString.split("~"); var valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); var unpackedTrade = {}; var currentField = 0; for (var property in fieldDefinition) { if (fieldDefinition[property] === 0) { unpackedTrade[property] = valuesArray[currentField]; currentField++; } else if (maskInt & fieldDefinition[property]) { if (fieldDefinition[property] === 1) { /*if it's a trade ID then still convert it as string, otherwise, it will be a number*/ unpackedTrade[property] = valuesArray[currentField]; } else { unpackedTrade[property] = parseFloat(valuesArray[currentField]); } currentField++; } } return unpackedTrade; }; CCC.API.STREAMING.streamerUnpack.FullVolume = function(volStr, fieldDefinition) { let valuesArray = volStr.split("~"); let unpackedCurrent = {}; let currentField = 0; for (let property in fieldDefinition) { if (fieldDefinition[property] == 0) { unpackedCurrent[property] = valuesArray[currentField]; currentField++; } } return unpackedCurrent; }; CCC.API.STREAMING.streamerUnpack.TopTierFullVolume = function(volStr, fieldDefinition) { let valuesArray = volStr.split("~"); let unpackedCurrent = {}; let currentField = 0; for (let property in fieldDefinition) { if (fieldDefinition[property] == 0) { unpackedCurrent[property] = valuesArray[currentField]; currentField++; } } return unpackedCurrent; }; CCC.API.STREAMING.streamerUnpack.OrderbookL2 = function (orderString, fieldDefinition) { let valuesArray = orderString.split('~'); let valuesArrayLenght = valuesArray.length; var mask = valuesArray[valuesArrayLenght - 1]; var maskInt = parseInt(mask, 16); let unpackedOrder = {}; let currentField = 0; for (const property in fieldDefinition) { if (fieldDefinition[property] === 0) { if (property === 'TYPE' || property === 'M' || property === 'FSYM' || property === 'TSYM') { unpackedOrder[property] = valuesArray[currentField]; } else { unpackedOrder[property] = parseFloat(valuesArray[currentField]); } currentField++; } else if (maskInt & fieldDefinition[property]) { unpackedOrder[property] = parseFloat(valuesArray[currentField]); currentField++; } } return unpackedOrder; }; CCC.API.STREAMING.streamerUnpack.OrderbookL2Snapshot = function (ordebookSnapshotStr, fieldDefinition) { let currentValue = ''; let messageLevels = { 0: [] }; let currentMessageLevel = 0; let currentIndex = 0; let ordebookSnapshotPackedLength = ordebookSnapshotStr.length; while (currentIndex < ordebookSnapshotPackedLength) { switch (ordebookSnapshotStr[currentIndex]) { case '~': messageLevels[currentMessageLevel].push(currentValue); currentValue = ''; break; case '[': currentMessageLevel++; messageLevels[currentMessageLevel] = []; currentMessageLevel++; messageLevels[currentMessageLevel] = []; break; case ']': if (currentValue !== '') { messageLevels[currentMessageLevel].push(currentValue); currentValue = messageLevels[currentMessageLevel]; messageLevels[currentMessageLevel] = []; currentMessageLevel--; messageLevels[currentMessageLevel].push(currentValue); } else { currentMessageLevel--; } currentValue = messageLevels[currentMessageLevel]; currentMessageLevel--; break; case ';': messageLevels[currentMessageLevel].push(currentValue); currentValue = messageLevels[currentMessageLevel]; messageLevels[currentMessageLevel] = []; currentMessageLevel--; messageLevels[currentMessageLevel].push(currentValue); currentMessageLevel++; currentValue = ''; break; default: currentValue += ordebookSnapshotStr[currentIndex]; } currentIndex++; } messageLevels[0].push(currentValue); let messageParts = messageLevels[0]; let maskInt = parseInt(messageParts[messageParts.length - 1], 16); let orderbookSnaspshotObject = {}; let currentField = 0; for (let property in fieldDefinition) { let currentPropertyInfo = fieldDefinition[property]; if (currentPropertyInfo.Mask === 0 || maskInt & currentPropertyInfo.Mask) { if (currentPropertyInfo.Type === 'string') { orderbookSnaspshotObject[property] = messageParts[currentField]; } else if (currentPropertyInfo.Type === 'number' || currentPropertyInfo.Type === 'timestamp') { orderbookSnaspshotObject[property] = parseFloat(messageParts[currentField]); } else if (currentPropertyInfo.Type === 'array') { orderbookSnaspshotObject[property] = []; for (let i = 0, len = messageParts[currentField].length; i < len; i++) { let currentSubMessageParts = messageParts[currentField][i]; let subMessageObject = {}; let objectMaskInt = currentSubMessageParts[currentSubMessageParts.length - 1]; let currentPropertyInArray = 0; for (let propertyInArrayDataFields in currentPropertyInfo.ArrayDataFields) { let currentSubPropertyField = currentPropertyInfo.ArrayDataFields[propertyInArrayDataFields]; if (currentSubPropertyField.Mask === 0 || currentSubPropertyField.Mask & objectMaskInt) { if (currentSubPropertyField.Type === 'string') { subMessageObject[propertyInArrayDataFields] = currentSubMessageParts[currentPropertyInArray]; } else if (currentSubPropertyField.Type === 'number' || currentSubPropertyField.Type === 'timestamp') { subMessageObject[propertyInArrayDataFields] = parseFloat(currentSubMessageParts[currentPropertyInArray]); } currentPropertyInArray++; } } orderbookSnaspshotObject[property].push(subMessageObject); } } currentField++; } } return orderbookSnaspshotObject; }; CCC.API.STREAMING.streamerUnpack.TopOfBook = function (topOfBookPacked, fieldDefinition) { let currentValue = ''; let messageLevels = { 0: [] }; let currentMessageLevel = 0; let currentIndex = 0; let topOfBookPackedLength = topOfBookPacked.length; while (currentIndex < topOfBookPackedLength) { switch (topOfBookPacked[currentIndex]) { case '~': messageLevels[currentMessageLevel].push(currentValue); currentValue = ''; break; case '[': currentMessageLevel++; messageLevels[currentMessageLevel] = []; currentMessageLevel++; messageLevels[currentMessageLevel] = []; break; case ']': if (currentValue !== '') { messageLevels[currentMessageLevel].push(currentValue); currentValue = messageLevels[currentMessageLevel]; messageLevels[currentMessageLevel] = []; currentMessageLevel--; messageLevels[currentMessageLevel].push(currentValue); } else { currentMessageLevel--; } currentValue = messageLevels[currentMessageLevel]; currentMessageLevel--; break; case ';': messageLevels[currentMessageLevel].push(currentValue); currentValue = messageLevels[currentMessageLevel]; messageLevels[currentMessageLevel] = []; currentMessageLevel--; messageLevels[currentMessageLevel].push(currentValue); currentMessageLevel++; currentValue = ''; break; default: currentValue += topOfBookPacked[currentIndex]; } currentIndex++; } messageLevels[0].push(currentValue); let messageParts = messageLevels[0]; let maskInt = parseInt(messageParts[messageParts.length - 1], 16); let topOfBookSnaspshotObject = {}; let currentField = 0; for (let property in fieldDefinition) { let currentPropertyInfo = fieldDefinition[property]; if (currentPropertyInfo.Mask === 0 || maskInt & currentPropertyInfo.Mask) { if (currentPropertyInfo.Type === 'string') { topOfBookSnaspshotObject[property] = messageParts[currentField]; } else if (currentPropertyInfo.Type === 'number' || currentPropertyInfo.Type === 'timestamp') { topOfBookSnaspshotObject[property] = parseFloat(messageParts[currentField]); } else if (currentPropertyInfo.Type === 'array') { topOfBookSnaspshotObject[property] = []; for (let i = 0, len = messageParts[currentField].length; i < len; i++) { let currentSubMessageParts = messageParts[currentField][i]; let subMessageObject = {}; let objectMaskInt = currentSubMessageParts[currentSubMessageParts.length - 1]; let currentPropertyInArray = 0; for (let propertyInArrayDataFields in currentPropertyInfo.ArrayDataFields) { let currentSubPropertyField = currentPropertyInfo.ArrayDataFields[propertyInArrayDataFields]; if (currentSubPropertyField.Mask === 0 || currentSubPropertyField.Mask & objectMaskInt) { if (currentSubPropertyField.Type === 'string') { subMessageObject[propertyInArrayDataFields] = currentSubMessageParts[currentPropertyInArray]; } else if (currentSubPropertyField.Type === 'number' || currentSubPropertyField.Type === 'timestamp') { subMessageObject[propertyInArrayDataFields] = parseFloat(currentSubMessageParts[currentPropertyInArray]); } currentPropertyInArray++; } } topOfBookSnaspshotObject[property].push(subMessageObject); } } currentField++; } } return topOfBookSnaspshotObject; }; CCC.API.API_TYPE= 'price_api'; CCC.API.HAS_ANNOUNCEMENT= false;