From 0479ab92fdb609ebb9aa2682b0bfa17fa4ac5e76 Mon Sep 17 00:00:00 2001 From: Ankit Samarthya Date: Sat, 1 Sep 2018 21:37:20 +0700 Subject: [PATCH 1/2] Moved to coinmarketcap api V2 --- lib/coinmarketcap.rb | 12 +- lib/coinmarketcap/version.rb | 2 +- spec/coinmarketcap_spec.rb | 34 +- spec/fixtures/cassettes/all_coin_response.yml | 949 +++++++++++++++++- .../cassettes/global_coin_response.yml | 53 +- .../cassettes/global_eur_coin_response.yml | 55 +- .../cassettes/limit_coin_response.yml | 140 ++- .../cassettes/single_coin_response.yml | 104 +- .../cassettes/single_eur_coin_response.yml | 139 ++- .../cassettes/wrong_coin_response.yml | 49 +- 10 files changed, 1482 insertions(+), 55 deletions(-) diff --git a/lib/coinmarketcap.rb b/lib/coinmarketcap.rb index 65b6144..02106b7 100644 --- a/lib/coinmarketcap.rb +++ b/lib/coinmarketcap.rb @@ -6,28 +6,24 @@ module Coinmarketcap def self.coins(limit = nil) if limit.nil? - HTTParty.get('https://api.coinmarketcap.com/v1/ticker/') + HTTParty.get('https://api.coinmarketcap.com/v2/ticker/?structure=array') else - HTTParty.get("https://api.coinmarketcap.com/v1/ticker/?limit=#{limit}") + HTTParty.get("https://api.coinmarketcap.com/v2/ticker/?limit=#{limit}&structure=array") end end def self.coin(id, currency = 'USD') - HTTParty.get("https://api.coinmarketcap.com/v1/ticker/#{id}/?convert=#{currency}") + HTTParty.get("https://api.coinmarketcap.com/v2/ticker/#{id}/?convert=#{currency}") end def self.global(currency = 'USD') - HTTParty.get("https://api.coinmarketcap.com/v1/global/?convert=#{currency}") + HTTParty.get("https://api.coinmarketcap.com/v2/global/?convert=#{currency}") end def self.get_historical_price(id, start_date, end_date) # 20170908 prices = [] doc = Nokogiri::HTML(open("https://coinmarketcap.com/currencies/#{id}/historical-data/?start=#{start_date}&end=#{end_date}")) rows = doc.css('tr') - if rows.count == 31 - doc = Nokogiri::HTML(open("https://coinmarketcap.com/assets/#{id}/historical-data/?start=#{start_date}&end=#{end_date}")) - rows = doc.css('tr') - end rows.shift rows.each do |row| begin diff --git a/lib/coinmarketcap/version.rb b/lib/coinmarketcap/version.rb index 27f39fe..403bf76 100644 --- a/lib/coinmarketcap/version.rb +++ b/lib/coinmarketcap/version.rb @@ -1,3 +1,3 @@ module Coinmarketcap - VERSION = "0.2.4" + VERSION = "0.3.0" end diff --git a/spec/coinmarketcap_spec.rb b/spec/coinmarketcap_spec.rb index b7cbf07..64e4881 100644 --- a/spec/coinmarketcap_spec.rb +++ b/spec/coinmarketcap_spec.rb @@ -8,7 +8,7 @@ describe "#get_historical_price" do context 'with valid id and start and end dates' do it "should receive an non empty array" do - VCR.use_cassette('historical_price_response') do + VCR.use_cassette('historical_price_response', :record => :new_episodes) do data = Coinmarketcap.get_historical_price('bitcoin', '20170908', '20170914') expect(data).to be_a Array expect(data.count).to be > 0 @@ -22,7 +22,7 @@ it "should receive a 200 response with all coins" do VCR.use_cassette('all_coin_response') do response = Coinmarketcap.coins - coins = JSON.parse(response.body) + coins = response["data"] expect(response.code).to eq(200) expect(coins.count).to be > 0 end @@ -33,7 +33,7 @@ it "should receive a 200 response with all coins" do VCR.use_cassette('limit_coin_response') do response = Coinmarketcap.coins(limit = 10) - coins = JSON.parse(response.body) + coins = response["data"] expect(response.code).to eq(200) expect(coins.count).to eq(10) end @@ -45,11 +45,10 @@ context 'with valid id' do it "should receive a 200 response with coin details" do VCR.use_cassette('single_coin_response') do - response = Coinmarketcap.coin('bitcoin') - coin = JSON.parse(response.body) + response = Coinmarketcap.coin('1') + coin = response["data"] expect(response.code).to eq(200) - expect(coin.count).to eq(1) - expect(coin.first['id']).to eq('bitcoin') + expect(coin['id']).to eq(1) end end end @@ -60,7 +59,8 @@ response = Coinmarketcap.coin('random') coin = JSON.parse(response.body) expect(response.code).to eq(404) - expect(coin['error']).to match(/id not found/) + expect(coin['data']).to be_nil + expect(coin['metadata']['error']).to match(/id not found/) end end end @@ -68,11 +68,11 @@ context 'with valid id and a currency code' do it "should receive a 200 response with coin details" do VCR.use_cassette('single_eur_coin_response') do - response = Coinmarketcap.coin('bitcoin', 'EUR') - coin = JSON.parse(response.body) + response = Coinmarketcap.coin('1', 'EUR') + coin = response["data"] expect(response.code).to eq(200) - expect(coin.count).to eq(1) - expect(coin.first['market_cap_eur'].to_i).to be > 0 + expect(coin['id']).to eq(1) + expect(coin['quotes']['EUR']).to be_present end end end @@ -82,9 +82,10 @@ it "should receive a 200 response with global details" do VCR.use_cassette('global_coin_response') do response = Coinmarketcap.global - global = JSON.parse(response.body) + global = response["data"] expect(response.code).to eq(200) - expect(global['active_currencies']).to be > 0 + expect(global['active_cryptocurrencies']).to be > 0 + expect(global['active_markets']).to be > 0 end end @@ -92,9 +93,10 @@ it "should receive a 200 response with global details in that currency" do VCR.use_cassette('global_eur_coin_response') do response = Coinmarketcap.global('EUR') - global = JSON.parse(response.body) + global = response["data"] expect(response.code).to eq(200) - expect(global['total_market_cap_eur']).to be > 0 + expect(global['active_cryptocurrencies']).to be > 0 + expect(global['quotes']['EUR']).to be_present end end end diff --git a/spec/fixtures/cassettes/all_coin_response.yml b/spec/fixtures/cassettes/all_coin_response.yml index 62b36a6..c4c3602 100644 --- a/spec/fixtures/cassettes/all_coin_response.yml +++ b/spec/fixtures/cassettes/all_coin_response.yml @@ -6126,4 +6126,951 @@ http_interactions: \n \"last_updated\": null\n }\n]" http_version: recorded_at: Fri, 16 Jun 2017 19:35:11 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/?structure=array + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:22:39 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d575a475a0f484c089479c8e57aeb29701535811759; expires=Sun, 01-Sep-19 + 14:22:39 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - HIT + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 453863eb6ddb6a9d-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": [\n {\n \"id\": 1, \n \"name\": + \"Bitcoin\", \n \"symbol\": \"BTC\", \n \"website_slug\": + \"bitcoin\", \n \"rank\": 1, \n \"circulating_supply\": + 17243775.0, \n \"total_supply\": 17243775.0, \n \"max_supply\": + 21000000.0, \n \"quotes\": {\n \"USD\": {\n \"price\": + 7062.3034403, \n \"volume_24h\": 4283131673.83085, \n \"market_cap\": + 121780771506.0, \n \"percent_change_1h\": 0.18, \n \"percent_change_24h\": + 1.7, \n \"percent_change_7d\": 4.98\n }\n + \ }, \n \"last_updated\": 1535811622\n }, \n {\n + \ \"id\": 1027, \n \"name\": \"Ethereum\", \n \"symbol\": + \"ETH\", \n \"website_slug\": \"ethereum\", \n \"rank\": + 2, \n \"circulating_supply\": 101688905.0, \n \"total_supply\": + 101688905.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 287.074626776, + \n \"volume_24h\": 1352336693.68838, \n \"market_cap\": + 29192304396.0, \n \"percent_change_1h\": 0.59, \n \"percent_change_24h\": + 2.94, \n \"percent_change_7d\": 2.37\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 52, \n \"name\": \"XRP\", \n \"symbol\": + \"XRP\", \n \"website_slug\": \"ripple\", \n \"rank\": + 3, \n \"circulating_supply\": 39650153121.0, \n \"total_supply\": + 99991852985.0, \n \"max_supply\": 100000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.3396494395, + \n \"volume_24h\": 227569277.46993, \n \"market_cap\": + 13467152284.0, \n \"percent_change_1h\": 0.29, \n \"percent_change_24h\": + 2.86, \n \"percent_change_7d\": 3.9\n }\n + \ }, \n \"last_updated\": 1535811603\n }, \n {\n + \ \"id\": 1831, \n \"name\": \"Bitcoin Cash\", \n \"symbol\": + \"BCH\", \n \"website_slug\": \"bitcoin-cash\", \n \"rank\": + 4, \n \"circulating_supply\": 17324663.0, \n \"total_supply\": + 17324663.0, \n \"max_supply\": 21000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 573.934640402, + \n \"volume_24h\": 331200639.849404, \n \"market_cap\": + 9943223942.0, \n \"percent_change_1h\": 2.42, \n \"percent_change_24h\": + 6.61, \n \"percent_change_7d\": 7.55\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1765, \n \"name\": \"EOS\", \n \"symbol\": + \"EOS\", \n \"website_slug\": \"eos\", \n \"rank\": + 5, \n \"circulating_supply\": 906245118.0, \n \"total_supply\": + 1006245120.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 6.6099727492, + \n \"volume_24h\": 906546011.766407, \n \"market_cap\": + 5990255531.0, \n \"percent_change_1h\": 0.49, \n \"percent_change_24h\": + 6.67, \n \"percent_change_7d\": 32.01\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 512, \n \"name\": \"Stellar\", \n \"symbol\": + \"XLM\", \n \"website_slug\": \"stellar\", \n \"rank\": + 6, \n \"circulating_supply\": 18773340284.0, \n \"total_supply\": + 104244271426.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2263577862, + \n \"volume_24h\": 50952638.4945009, \n \"market_cap\": + 4249491747.0, \n \"percent_change_1h\": 0.5, \n \"percent_change_24h\": + 3.77, \n \"percent_change_7d\": 4.54\n }\n + \ }, \n \"last_updated\": 1535811617\n }, \n {\n + \ \"id\": 2, \n \"name\": \"Litecoin\", \n \"symbol\": + \"LTC\", \n \"website_slug\": \"litecoin\", \n \"rank\": + 7, \n \"circulating_supply\": 58101054.0, \n \"total_supply\": + 58101054.0, \n \"max_supply\": 84000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 64.0086108621, + \n \"volume_24h\": 290254195.514887, \n \"market_cap\": + 3718967743.0, \n \"percent_change_1h\": 0.17, \n \"percent_change_24h\": + 7.17, \n \"percent_change_7d\": 10.68\n }\n + \ }, \n \"last_updated\": 1535811601\n }, \n {\n + \ \"id\": 825, \n \"name\": \"Tether\", \n \"symbol\": + \"USDT\", \n \"website_slug\": \"tether\", \n \"rank\": + 8, \n \"circulating_supply\": 2742140336.0, \n \"total_supply\": + 3080109502.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.9987174159, + \n \"volume_24h\": 2636675714.311, \n \"market_cap\": + 2738623310.0, \n \"percent_change_1h\": -0.01, \n \"percent_change_24h\": + -0.2, \n \"percent_change_7d\": -0.09\n }\n + \ }, \n \"last_updated\": 1535811629\n }, \n {\n + \ \"id\": 2010, \n \"name\": \"Cardano\", \n \"symbol\": + \"ADA\", \n \"website_slug\": \"cardano\", \n \"rank\": + 9, \n \"circulating_supply\": 25927070538.0, \n \"total_supply\": + 31112483745.0, \n \"max_supply\": 45000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1043457292, + \n \"volume_24h\": 52160578.6140594, \n \"market_cap\": + 2705379080.0, \n \"percent_change_1h\": 0.25, \n \"percent_change_24h\": + 4.69, \n \"percent_change_7d\": 11.35\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1720, \n \"name\": \"IOTA\", \n \"symbol\": + \"MIOTA\", \n \"website_slug\": \"iota\", \n \"rank\": + 10, \n \"circulating_supply\": 2779530283.0, \n \"total_supply\": + 2779530283.0, \n \"max_supply\": 2779530283.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.7393288211, + \n \"volume_24h\": 52632004.445195, \n \"market_cap\": + 2054986847.0, \n \"percent_change_1h\": 1.2, \n \"percent_change_24h\": + 5.61, \n \"percent_change_7d\": 38.66\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 328, \n \"name\": \"Monero\", \n \"symbol\": + \"XMR\", \n \"website_slug\": \"monero\", \n \"rank\": + 11, \n \"circulating_supply\": 16368711.0, \n \"total_supply\": + 16368711.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 120.769155642, + \n \"volume_24h\": 64635586.6427906, \n \"market_cap\": + 1976835370.0, \n \"percent_change_1h\": 1.28, \n \"percent_change_24h\": + 12.14, \n \"percent_change_7d\": 29.9\n }\n + \ }, \n \"last_updated\": 1535811612\n }, \n {\n + \ \"id\": 131, \n \"name\": \"Dash\", \n \"symbol\": + \"DASH\", \n \"website_slug\": \"dash\", \n \"rank\": + 12, \n \"circulating_supply\": 8290015.0, \n \"total_supply\": + 8290015.0, \n \"max_supply\": 18900000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 218.079478416, + \n \"volume_24h\": 330006074.184136, \n \"market_cap\": + 1807882231.0, \n \"percent_change_1h\": 1.66, \n \"percent_change_24h\": + 17.97, \n \"percent_change_7d\": 52.3\n }\n + \ }, \n \"last_updated\": 1535811606\n }, \n {\n + \ \"id\": 1958, \n \"name\": \"TRON\", \n \"symbol\": + \"TRX\", \n \"website_slug\": \"tron\", \n \"rank\": + 13, \n \"circulating_supply\": 65748111645.0, \n \"total_supply\": + 99000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0256635084, + \n \"volume_24h\": 107762747.82475, \n \"market_cap\": + 1687327215.0, \n \"percent_change_1h\": 0.72, \n \"percent_change_24h\": + 4.08, \n \"percent_change_7d\": 18.59\n }\n + \ }, \n \"last_updated\": 1535811631\n }, \n {\n + \ \"id\": 1376, \n \"name\": \"NEO\", \n \"symbol\": + \"NEO\", \n \"website_slug\": \"neo\", \n \"rank\": + 14, \n \"circulating_supply\": 65000000.0, \n \"total_supply\": + 100000000.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 21.4377820582, + \n \"volume_24h\": 68226506.3538412, \n \"market_cap\": + 1393455834.0, \n \"percent_change_1h\": 0.55, \n \"percent_change_24h\": + 9.82, \n \"percent_change_7d\": 20.07\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 1321, \n \"name\": \"Ethereum Classic\", \n + \ \"symbol\": \"ETC\", \n \"website_slug\": \"ethereum-classic\", + \n \"rank\": 15, \n \"circulating_supply\": 104218392.0, + \n \"total_supply\": 104218392.0, \n \"max_supply\": + null, \n \"quotes\": {\n \"USD\": {\n \"price\": + 13.063957097, \n \"volume_24h\": 187141543.659339, \n \"market_cap\": + 1361504602.0, \n \"percent_change_1h\": 0.34, \n \"percent_change_24h\": + 2.86, \n \"percent_change_7d\": 4.12\n }\n + \ }, \n \"last_updated\": 1535811621\n }, \n {\n + \ \"id\": 1839, \n \"name\": \"Binance Coin\", \n \"symbol\": + \"BNB\", \n \"website_slug\": \"binance-coin\", \n \"rank\": + 16, \n \"circulating_supply\": 95512523.0, \n \"total_supply\": + 192443301.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 11.2712764439, + \n \"volume_24h\": 27694337.7684881, \n \"market_cap\": + 1076548052.0, \n \"percent_change_1h\": 0.87, \n \"percent_change_24h\": + 5.29, \n \"percent_change_7d\": 11.8\n }\n + \ }, \n \"last_updated\": 1535811632\n }, \n {\n + \ \"id\": 3077, \n \"name\": \"VeChain\", \n \"symbol\": + \"VET\", \n \"website_slug\": \"vechain\", \n \"rank\": + 17, \n \"circulating_supply\": 55454734800.0, \n \"total_supply\": + 86712634466.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0182115893, + \n \"volume_24h\": 30071369.7564787, \n \"market_cap\": + 1009918855.0, \n \"percent_change_1h\": 1.2, \n \"percent_change_24h\": + 7.42, \n \"percent_change_7d\": 21.49\n }\n + \ }, \n \"last_updated\": 1535811645\n }, \n {\n + \ \"id\": 873, \n \"name\": \"NEM\", \n \"symbol\": + \"XEM\", \n \"website_slug\": \"nem\", \n \"rank\": + 18, \n \"circulating_supply\": 8999999999.0, \n \"total_supply\": + 8999999999.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1089919912, + \n \"volume_24h\": 14711890.3953672, \n \"market_cap\": + 980927921.0, \n \"percent_change_1h\": -0.13, \n \"percent_change_24h\": + 6.31, \n \"percent_change_7d\": 6.57\n }\n + \ }, \n \"last_updated\": 1535811624\n }, \n {\n + \ \"id\": 2011, \n \"name\": \"Tezos\", \n \"symbol\": + \"XTZ\", \n \"website_slug\": \"tezos\", \n \"rank\": + 19, \n \"circulating_supply\": 607489041.0, \n \"total_supply\": + 763306930.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.3848425856, + \n \"volume_24h\": 1693503.1889682, \n \"market_cap\": + 841276694.0, \n \"percent_change_1h\": 0.33, \n \"percent_change_24h\": + 3.64, \n \"percent_change_7d\": 4.66\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 1437, \n \"name\": \"Zcash\", \n \"symbol\": + \"ZEC\", \n \"website_slug\": \"zcash\", \n \"rank\": + 20, \n \"circulating_supply\": 4702806.0, \n \"total_supply\": + 4702806.0, \n \"max_supply\": null, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 154.889060065, + \n \"volume_24h\": 133586515.832587, \n \"market_cap\": + 728413240.0, \n \"percent_change_1h\": -0.14, \n \"percent_change_24h\": + 6.92, \n \"percent_change_7d\": 11.2\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 74, \n \"name\": \"Dogecoin\", \n \"symbol\": + \"DOGE\", \n \"website_slug\": \"dogecoin\", \n \"rank\": + 21, \n \"circulating_supply\": 115960989052.0, \n \"total_supply\": + 115960989052.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0058919597, + \n \"volume_24h\": 154141249.797235, \n \"market_cap\": + 683237479.0, \n \"percent_change_1h\": 1.07, \n \"percent_change_24h\": + 54.4, \n \"percent_change_7d\": 146.21\n }\n + \ }, \n \"last_updated\": 1535811603\n }, \n {\n + \ \"id\": 1808, \n \"name\": \"OmiseGO\", \n \"symbol\": + \"OMG\", \n \"website_slug\": \"omisego\", \n \"rank\": + 22, \n \"circulating_supply\": 140245398.0, \n \"total_supply\": + 140245398.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.3434609368, + \n \"volume_24h\": 20211889.3629481, \n \"market_cap\": + 609150409.0, \n \"percent_change_1h\": 0.95, \n \"percent_change_24h\": + 3.74, \n \"percent_change_7d\": 15.18\n }\n + \ }, \n \"last_updated\": 1535811636\n }, \n {\n + \ \"id\": 1214, \n \"name\": \"Lisk\", \n \"symbol\": + \"LSK\", \n \"website_slug\": \"lisk\", \n \"rank\": + 23, \n \"circulating_supply\": 109664974.0, \n \"total_supply\": + 124906240.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.6143902937, + \n \"volume_24h\": 5911911.43729137, \n \"market_cap\": + 506036994.0, \n \"percent_change_1h\": -0.06, \n \"percent_change_24h\": + -0.45, \n \"percent_change_7d\": -11.87\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 2566, \n \"name\": \"Ontology\", \n \"symbol\": + \"ONT\", \n \"website_slug\": \"ontology\", \n \"rank\": + 24, \n \"circulating_supply\": 184206203.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 2.5929041176, + \n \"volume_24h\": 91456125.3807255, \n \"market_cap\": + 477629022.0, \n \"percent_change_1h\": 0.82, \n \"percent_change_24h\": + 5.7, \n \"percent_change_7d\": 15.6\n }\n + \ }, \n \"last_updated\": 1535811635\n }, \n {\n + \ \"id\": 372, \n \"name\": \"Bytecoin\", \n \"symbol\": + \"BCN\", \n \"website_slug\": \"bytecoin-bcn\", \n \"rank\": + 25, \n \"circulating_supply\": 184038571630.0, \n \"total_supply\": + 184038571630.0, \n \"max_supply\": 184470000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0025357239, + \n \"volume_24h\": 9887780.65109182, \n \"market_cap\": + 466671003.0, \n \"percent_change_1h\": 2.18, \n \"percent_change_24h\": + 19.22, \n \"percent_change_7d\": 45.23\n }\n + \ }, \n \"last_updated\": 1535811611\n }, \n {\n + \ \"id\": 1684, \n \"name\": \"Qtum\", \n \"symbol\": + \"QTUM\", \n \"website_slug\": \"qtum\", \n \"rank\": + 26, \n \"circulating_supply\": 88858056.0, \n \"total_supply\": + 100858056.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.8976012081, + \n \"volume_24h\": 122121207.597362, \n \"market_cap\": + 435191322.0, \n \"percent_change_1h\": 3.3, \n \"percent_change_24h\": + 5.22, \n \"percent_change_7d\": 16.76\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 1896, \n \"name\": \"0x\", \n \"symbol\": + \"ZRX\", \n \"website_slug\": \"0x\", \n \"rank\": 27, + \n \"circulating_supply\": 537482115.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.7961364697, + \n \"volume_24h\": 13663337.4710922, \n \"market_cap\": + 427909113.0, \n \"percent_change_1h\": 1.11, \n \"percent_change_24h\": + 4.25, \n \"percent_change_7d\": 11.05\n }\n + \ }, \n \"last_updated\": 1535811631\n }, \n {\n + \ \"id\": 1567, \n \"name\": \"Nano\", \n \"symbol\": + \"NANO\", \n \"website_slug\": \"nano\", \n \"rank\": + 28, \n \"circulating_supply\": 133248289.0, \n \"total_supply\": + 133248289.0, \n \"max_supply\": 133248290.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 3.1657745188, + \n \"volume_24h\": 18285399.0960187, \n \"market_cap\": + 421834039.0, \n \"percent_change_1h\": 0.97, \n \"percent_change_24h\": + 4.51, \n \"percent_change_7d\": 17.23\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 2083, \n \"name\": \"Bitcoin Gold\", \n \"symbol\": + \"BTG\", \n \"website_slug\": \"bitcoin-gold\", \n \"rank\": + 29, \n \"circulating_supply\": 17210161.0, \n \"total_supply\": + 17310161.0, \n \"max_supply\": 21000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 21.5121656527, + \n \"volume_24h\": 14284692.3827385, \n \"market_cap\": + 370227836.0, \n \"percent_change_1h\": 0.3, \n \"percent_change_24h\": + -1.82, \n \"percent_change_7d\": 6.44\n }\n + \ }, \n \"last_updated\": 1535811635\n }, \n {\n + \ \"id\": 1168, \n \"name\": \"Decred\", \n \"symbol\": + \"DCR\", \n \"website_slug\": \"decred\", \n \"rank\": + 30, \n \"circulating_supply\": 8391609.0, \n \"total_supply\": + 8391609.0, \n \"max_supply\": 21000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 43.5292145687, + \n \"volume_24h\": 1009780.85361389, \n \"market_cap\": + 365280160.0, \n \"percent_change_1h\": 0.71, \n \"percent_change_24h\": + 3.89, \n \"percent_change_7d\": 10.1\n }\n + \ }, \n \"last_updated\": 1535811646\n }, \n {\n + \ \"id\": 2099, \n \"name\": \"ICON\", \n \"symbol\": + \"ICX\", \n \"website_slug\": \"icon\", \n \"rank\": + 31, \n \"circulating_supply\": 387431340.0, \n \"total_supply\": + 800460000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.941926754, + \n \"volume_24h\": 34577594.4409808, \n \"market_cap\": + 364931944.0, \n \"percent_change_1h\": 0.4, \n \"percent_change_24h\": + 7.11, \n \"percent_change_7d\": 30.2\n }\n + \ }, \n \"last_updated\": 1535811632\n }, \n {\n + \ \"id\": 109, \n \"name\": \"DigiByte\", \n \"symbol\": + \"DGB\", \n \"website_slug\": \"digibyte\", \n \"rank\": + 32, \n \"circulating_supply\": 10736747390.0, \n \"total_supply\": + 10736747390.0, \n \"max_supply\": 21000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0334115571, + \n \"volume_24h\": 11004120.4398294, \n \"market_cap\": + 358731448.0, \n \"percent_change_1h\": 0.21, \n \"percent_change_24h\": + 8.13, \n \"percent_change_7d\": 28.12\n }\n + \ }, \n \"last_updated\": 1535811609\n }, \n {\n + \ \"id\": 2469, \n \"name\": \"Zilliqa\", \n \"symbol\": + \"ZIL\", \n \"website_slug\": \"zilliqa\", \n \"rank\": + 33, \n \"circulating_supply\": 7615682516.0, \n \"total_supply\": + 12600000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.04567172, + \n \"volume_24h\": 12643827.4009064, \n \"market_cap\": + 347821320.0, \n \"percent_change_1h\": 0.54, \n \"percent_change_24h\": + 5.08, \n \"percent_change_7d\": 15.15\n }\n + \ }, \n \"last_updated\": 1535811637\n }, \n {\n + \ \"id\": 463, \n \"name\": \"BitShares\", \n \"symbol\": + \"BTS\", \n \"website_slug\": \"bitshares\", \n \"rank\": + 34, \n \"circulating_supply\": 2655400000.0, \n \"total_supply\": + 2655400000.0, \n \"max_supply\": 3600570502.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1214113386, + \n \"volume_24h\": 7178660.99131208, \n \"market_cap\": + 322395669.0, \n \"percent_change_1h\": 0.3, \n \"percent_change_24h\": + 5.95, \n \"percent_change_7d\": 12.75\n }\n + \ }, \n \"last_updated\": 1535811617\n }, \n {\n + \ \"id\": 1518, \n \"name\": \"Maker\", \n \"symbol\": + \"MKR\", \n \"website_slug\": \"maker\", \n \"rank\": + 35, \n \"circulating_supply\": 668228.0, \n \"total_supply\": + 1000000.0, \n \"max_supply\": null, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 467.204002529, + \n \"volume_24h\": 325896.071104897, \n \"market_cap\": + 312198689.0, \n \"percent_change_1h\": 0.24, \n \"percent_change_24h\": + 7.22, \n \"percent_change_7d\": 5.1\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 1700, \n \"name\": \"Aeternity\", \n \"symbol\": + \"AE\", \n \"website_slug\": \"aeternity\", \n \"rank\": + 36, \n \"circulating_supply\": 233020472.0, \n \"total_supply\": + 273685830.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.1716578007, + \n \"volume_24h\": 4681807.81269093, \n \"market_cap\": + 273020254.0, \n \"percent_change_1h\": 0.22, \n \"percent_change_24h\": + 5.43, \n \"percent_change_7d\": 13.35\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 1042, \n \"name\": \"Siacoin\", \n \"symbol\": + \"SC\", \n \"website_slug\": \"siacoin\", \n \"rank\": + 37, \n \"circulating_supply\": 36597079659.0, \n \"total_supply\": + 36597079659.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0073231139, + \n \"volume_24h\": 12510041.6454422, \n \"market_cap\": + 268004582.0, \n \"percent_change_1h\": 3.4, \n \"percent_change_24h\": + 21.92, \n \"percent_change_7d\": 32.71\n }\n + \ }, \n \"last_updated\": 1535811622\n }, \n {\n + \ \"id\": 1230, \n \"name\": \"Steem\", \n \"symbol\": + \"STEEM\", \n \"website_slug\": \"steem\", \n \"rank\": + 38, \n \"circulating_supply\": 274353279.0, \n \"total_supply\": + 291327373.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.9580101132, + \n \"volume_24h\": 1566745.11960258, \n \"market_cap\": + 262833216.0, \n \"percent_change_1h\": -0.12, \n \"percent_change_24h\": + 4.29, \n \"percent_change_7d\": 6.61\n }\n + \ }, \n \"last_updated\": 1535811622\n }, \n {\n + \ \"id\": 693, \n \"name\": \"Verge\", \n \"symbol\": + \"XVG\", \n \"website_slug\": \"verge\", \n \"rank\": + 39, \n \"circulating_supply\": 15172086051.0, \n \"total_supply\": + 15172086051.0, \n \"max_supply\": 16555000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0165753855, + \n \"volume_24h\": 11649627.1129308, \n \"market_cap\": + 251483175.0, \n \"percent_change_1h\": 6.51, \n \"percent_change_24h\": + 18.32, \n \"percent_change_7d\": 22.26\n }\n + \ }, \n \"last_updated\": 1535811627\n }, \n {\n + \ \"id\": 1697, \n \"name\": \"Basic Attention Token\", + \n \"symbol\": \"BAT\", \n \"website_slug\": \"basic-attention-token\", + \n \"rank\": 40, \n \"circulating_supply\": 1000000000.0, + \n \"total_supply\": 1500000000.0, \n \"max_supply\": + null, \n \"quotes\": {\n \"USD\": {\n \"price\": + 0.2250943439, \n \"volume_24h\": 3364706.81086179, \n \"market_cap\": + 225094344.0, \n \"percent_change_1h\": 0.47, \n \"percent_change_24h\": + 3.6, \n \"percent_change_7d\": 7.26\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1104, \n \"name\": \"Augur\", \n \"symbol\": + \"REP\", \n \"website_slug\": \"augur\", \n \"rank\": + 41, \n \"circulating_supply\": 11000000.0, \n \"total_supply\": + 11000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 19.9499807326, + \n \"volume_24h\": 3935898.65844045, \n \"market_cap\": + 219449788.0, \n \"percent_change_1h\": 0.61, \n \"percent_change_24h\": + 1.85, \n \"percent_change_7d\": 4.65\n }\n + \ }, \n \"last_updated\": 1535811621\n }, \n {\n + \ \"id\": 1274, \n \"name\": \"Waves\", \n \"symbol\": + \"WAVES\", \n \"website_slug\": \"waves\", \n \"rank\": + 42, \n \"circulating_supply\": 100000000.0, \n \"total_supply\": + 100000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 2.1635998602, + \n \"volume_24h\": 3593217.34779723, \n \"market_cap\": + 216359986.0, \n \"percent_change_1h\": 0.92, \n \"percent_change_24h\": + 1.81, \n \"percent_change_7d\": -7.96\n }\n + \ }, \n \"last_updated\": 1535811624\n }, \n {\n + \ \"id\": 1866, \n \"name\": \"Bytom\", \n \"symbol\": + \"BTM\", \n \"website_slug\": \"bytom\", \n \"rank\": + 43, \n \"circulating_supply\": 1002499275.0, \n \"total_supply\": + 1407000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2128767725, + \n \"volume_24h\": 46417259.0462773, \n \"market_cap\": + 213408810.0, \n \"percent_change_1h\": 0.17, \n \"percent_change_24h\": + 7.61, \n \"percent_change_7d\": 7.64\n }\n + \ }, \n \"last_updated\": 1535811627\n }, \n {\n + \ \"id\": 2603, \n \"name\": \"Pundi X\", \n \"symbol\": + \"NPXS\", \n \"website_slug\": \"pundi-x\", \n \"rank\": + 44, \n \"circulating_supply\": 107040901033.0, \n \"total_supply\": + 280255193861.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0019637967, + \n \"volume_24h\": 9976554.55260553, \n \"market_cap\": + 210206564.0, \n \"percent_change_1h\": 2.95, \n \"percent_change_24h\": + 6.09, \n \"percent_change_7d\": 18.07\n }\n + \ }, \n \"last_updated\": 1535811637\n }, \n {\n + \ \"id\": 2222, \n \"name\": \"Bitcoin Diamond\", \n + \ \"symbol\": \"BCD\", \n \"website_slug\": \"bitcoin-diamond\", + \n \"rank\": 45, \n \"circulating_supply\": 153756875.0, + \n \"total_supply\": 156756875.0, \n \"max_supply\": + 210000000.0, \n \"quotes\": {\n \"USD\": {\n \"price\": + 1.324090179, \n \"volume_24h\": 1995923.80072522, \n \"market_cap\": + 203587968.0, \n \"percent_change_1h\": -0.04, \n \"percent_change_24h\": + 4.26, \n \"percent_change_7d\": 2.88\n }\n + \ }, \n \"last_updated\": 1535811635\n }, \n {\n + \ \"id\": 1925, \n \"name\": \"Waltonchain\", \n \"symbol\": + \"WTC\", \n \"website_slug\": \"waltonchain\", \n \"rank\": + 46, \n \"circulating_supply\": 40144099.0, \n \"total_supply\": + 70000000.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.8103923446, + \n \"volume_24h\": 11830814.8268589, \n \"market_cap\": + 193108868.0, \n \"percent_change_1h\": 0.37, \n \"percent_change_24h\": + 3.99, \n \"percent_change_7d\": 38.69\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 1455, \n \"name\": \"Golem\", \n \"symbol\": + \"GNT\", \n \"website_slug\": \"golem-network-tokens\", \n \"rank\": + 47, \n \"circulating_supply\": 959242000.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1782607925, + \n \"volume_24h\": 4771129.53013034, \n \"market_cap\": + 170995239.0, \n \"percent_change_1h\": 1.08, \n \"percent_change_24h\": + 5.53, \n \"percent_change_7d\": 18.23\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 1703, \n \"name\": \"Metaverse ETP\", \n \"symbol\": + \"ETP\", \n \"website_slug\": \"metaverse\", \n \"rank\": + 48, \n \"circulating_supply\": 50198788.0, \n \"total_supply\": + 56272921.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 3.3751836353, + \n \"volume_24h\": 3323217.85379316, \n \"market_cap\": + 169430127.0, \n \"percent_change_1h\": -0.15, \n \"percent_change_24h\": + 3.19, \n \"percent_change_7d\": 27.13\n }\n + \ }, \n \"last_updated\": 1535811629\n }, \n {\n + \ \"id\": 1343, \n \"name\": \"Stratis\", \n \"symbol\": + \"STRAT\", \n \"website_slug\": \"stratis\", \n \"rank\": + 49, \n \"circulating_supply\": 98996916.0, \n \"total_supply\": + 98996916.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.6938893391, + \n \"volume_24h\": 1785246.67844704, \n \"market_cap\": + 167689821.0, \n \"percent_change_1h\": 0.56, \n \"percent_change_24h\": + 10.26, \n \"percent_change_7d\": 12.89\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 1789, \n \"name\": \"Populous\", \n \"symbol\": + \"PPT\", \n \"website_slug\": \"populous\", \n \"rank\": + 50, \n \"circulating_supply\": 37004027.0, \n \"total_supply\": + 53252246.0, \n \"max_supply\": 53252246.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.4475525491, + \n \"volume_24h\": 3598657.05922976, \n \"market_cap\": + 164577354.0, \n \"percent_change_1h\": 1.63, \n \"percent_change_24h\": + 4.39, \n \"percent_change_7d\": -2.7\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 2606, \n \"name\": \"Wanchain\", \n \"symbol\": + \"WAN\", \n \"website_slug\": \"wanchain\", \n \"rank\": + 51, \n \"circulating_supply\": 106152493.0, \n \"total_supply\": + 210000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.4453507027, + \n \"volume_24h\": 5659286.31990227, \n \"market_cap\": + 153427580.0, \n \"percent_change_1h\": 2.51, \n \"percent_change_24h\": + 13.65, \n \"percent_change_7d\": 34.02\n }\n + \ }, \n \"last_updated\": 1535811635\n }, \n {\n + \ \"id\": 1759, \n \"name\": \"Status\", \n \"symbol\": + \"SNT\", \n \"website_slug\": \"status\", \n \"rank\": + 52, \n \"circulating_supply\": 3470483788.0, \n \"total_supply\": + 6804870174.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0427670267, + \n \"volume_24h\": 12459171.5264198, \n \"market_cap\": + 148422273.0, \n \"percent_change_1h\": 0.34, \n \"percent_change_24h\": + 5.64, \n \"percent_change_7d\": 6.69\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 1521, \n \"name\": \"Komodo\", \n \"symbol\": + \"KMD\", \n \"website_slug\": \"komodo\", \n \"rank\": + 53, \n \"circulating_supply\": 109441514.0, \n \"total_supply\": + 109441514.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.3452453225, + \n \"volume_24h\": 625064.241250602, \n \"market_cap\": + 147225685.0, \n \"percent_change_1h\": 0.59, \n \"percent_change_24h\": + 3.67, \n \"percent_change_7d\": 18.14\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 1903, \n \"name\": \"Hshare\", \n \"symbol\": + \"HSR\", \n \"website_slug\": \"hshare\", \n \"rank\": + 54, \n \"circulating_supply\": 43427585.0, \n \"total_supply\": + 43427585.0, \n \"max_supply\": 84000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 3.275633477, + \n \"volume_24h\": 15570796.8501533, \n \"market_cap\": + 142252852.0, \n \"percent_change_1h\": 2.17, \n \"percent_change_24h\": + 5.46, \n \"percent_change_7d\": 16.71\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 2403, \n \"name\": \"MOAC\", \n \"symbol\": + \"MOAC\", \n \"website_slug\": \"moac\", \n \"rank\": + 55, \n \"circulating_supply\": 62463334.0, \n \"total_supply\": + 151205864.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 2.2612249366, + \n \"volume_24h\": 377563.469074077, \n \"market_cap\": + 141243648.0, \n \"percent_change_1h\": 0.18, \n \"percent_change_24h\": + 1.02, \n \"percent_change_7d\": -21.77\n }\n + \ }, \n \"last_updated\": 1535811636\n }, \n {\n + \ \"id\": 2021, \n \"name\": \"RChain\", \n \"symbol\": + \"RHOC\", \n \"website_slug\": \"rchain\", \n \"rank\": + 56, \n \"circulating_supply\": 380969669.0, \n \"total_supply\": + 870663574.0, \n \"max_supply\": 1000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.3674889713, + \n \"volume_24h\": 293512.444965926, \n \"market_cap\": + 140002152.0, \n \"percent_change_1h\": 0.58, \n \"percent_change_24h\": + -3.93, \n \"percent_change_7d\": -9.85\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 2405, \n \"name\": \"IOST\", \n \"symbol\": + \"IOST\", \n \"website_slug\": \"iostoken\", \n \"rank\": + 57, \n \"circulating_supply\": 8400000000.0, \n \"total_supply\": + 21000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.016163713, + \n \"volume_24h\": 12768330.3657894, \n \"market_cap\": + 135775189.0, \n \"percent_change_1h\": 1.74, \n \"percent_change_24h\": + 9.6, \n \"percent_change_7d\": 14.54\n }\n + \ }, \n \"last_updated\": 1535811635\n }, \n {\n + \ \"id\": 2087, \n \"name\": \"KuCoin Shares\", \n \"symbol\": + \"KCS\", \n \"website_slug\": \"kucoin-shares\", \n \"rank\": + 58, \n \"circulating_supply\": 90730576.0, \n \"total_supply\": + 180730576.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.4369510151, + \n \"volume_24h\": 185910.506926605, \n \"market_cap\": + 130375393.0, \n \"percent_change_1h\": 0.41, \n \"percent_change_24h\": + 3.2, \n \"percent_change_7d\": 4.84\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 2062, \n \"name\": \"Aion\", \n \"symbol\": + \"AION\", \n \"website_slug\": \"aion\", \n \"rank\": + 59, \n \"circulating_supply\": 206986994.0, \n \"total_supply\": + 465934587.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.6254211411, + \n \"volume_24h\": 3126369.09363575, \n \"market_cap\": + 129454042.0, \n \"percent_change_1h\": 1.2, \n \"percent_change_24h\": + 2.2, \n \"percent_change_7d\": 0.24\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 291, \n \"name\": \"MaidSafeCoin\", \n \"symbol\": + \"MAID\", \n \"website_slug\": \"maidsafecoin\", \n \"rank\": + 60, \n \"circulating_supply\": 452552412.0, \n \"total_supply\": + 452552412.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2789406701, + \n \"volume_24h\": 1666904.49881631, \n \"market_cap\": + 126235273.0, \n \"percent_change_1h\": -2.09, \n \"percent_change_24h\": + 7.52, \n \"percent_change_7d\": 17.61\n }\n + \ }, \n \"last_updated\": 1535811618\n }, \n {\n + \ \"id\": 118, \n \"name\": \"ReddCoin\", \n \"symbol\": + \"RDD\", \n \"website_slug\": \"reddcoin\", \n \"rank\": + 61, \n \"circulating_supply\": 28808713174.0, \n \"total_supply\": + 28808713174.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0043418417, + \n \"volume_24h\": 10495376.7782565, \n \"market_cap\": + 125082871.0, \n \"percent_change_1h\": 7.79, \n \"percent_change_24h\": + 43.33, \n \"percent_change_7d\": 70.69\n }\n + \ }, \n \"last_updated\": 1535811607\n }, \n {\n + \ \"id\": 2608, \n \"name\": \"Mithril\", \n \"symbol\": + \"MITH\", \n \"website_slug\": \"mithril\", \n \"rank\": + 62, \n \"circulating_supply\": 376975425.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.3245434629, + \n \"volume_24h\": 28267424.1566637, \n \"market_cap\": + 122344910.0, \n \"percent_change_1h\": 0.55, \n \"percent_change_24h\": + 3.1, \n \"percent_change_7d\": 2.32\n }\n + \ }, \n \"last_updated\": 1535811640\n }, \n {\n + \ \"id\": 1876, \n \"name\": \"Dentacoin\", \n \"symbol\": + \"DCN\", \n \"website_slug\": \"dentacoin\", \n \"rank\": + 63, \n \"circulating_supply\": 325226613094.0, \n \"total_supply\": + 1963173416169.0, \n \"max_supply\": 8000000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0003643861, + \n \"volume_24h\": 104028.902516829, \n \"market_cap\": + 118508067.0, \n \"percent_change_1h\": 2.47, \n \"percent_change_24h\": + 6.47, \n \"percent_change_7d\": -14.24\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 1320, \n \"name\": \"Ardor\", \n \"symbol\": + \"ARDR\", \n \"website_slug\": \"ardor\", \n \"rank\": + 64, \n \"circulating_supply\": 998999495.0, \n \"total_supply\": + 998999495.0, \n \"max_supply\": 998999495.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1163412846, + \n \"volume_24h\": 1152038.1838045, \n \"market_cap\": + 116224885.0, \n \"percent_change_1h\": 0.96, \n \"percent_change_24h\": + 2.75, \n \"percent_change_7d\": 5.42\n }\n + \ }, \n \"last_updated\": 1535811623\n }, \n {\n + \ \"id\": 1975, \n \"name\": \"Chainlink\", \n \"symbol\": + \"LINK\", \n \"website_slug\": \"chainlink\", \n \"rank\": + 65, \n \"circulating_supply\": 350000000.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.3216417828, + \n \"volume_24h\": 797361.658010173, \n \"market_cap\": + 112574624.0, \n \"percent_change_1h\": -0.46, \n \"percent_change_24h\": + 3.95, \n \"percent_change_7d\": -1.81\n }\n + \ }, \n \"last_updated\": 1535811632\n }, \n {\n + \ \"id\": 2682, \n \"name\": \"Holo\", \n \"symbol\": + \"HOT\", \n \"website_slug\": \"holo\", \n \"rank\": + 66, \n \"circulating_supply\": 133214575156.0, \n \"total_supply\": + 177619433541.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.000818445, + \n \"volume_24h\": 3821611.0171679, \n \"market_cap\": + 109028798.0, \n \"percent_change_1h\": 1.06, \n \"percent_change_24h\": + 4.03, \n \"percent_change_7d\": 32.76\n }\n + \ }, \n \"last_updated\": 1535811643\n }, \n {\n + \ \"id\": 2502, \n \"name\": \"Huobi Token\", \n \"symbol\": + \"HT\", \n \"website_slug\": \"huobi-token\", \n \"rank\": + 67, \n \"circulating_supply\": 50000200.0, \n \"total_supply\": + 500000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 2.1519592849, + \n \"volume_24h\": 26619319.6417543, \n \"market_cap\": + 107598395.0, \n \"percent_change_1h\": 0.07, \n \"percent_change_24h\": + 2.22, \n \"percent_change_7d\": 2.74\n }\n + \ }, \n \"last_updated\": 1535811638\n }, \n {\n + \ \"id\": 2299, \n \"name\": \"aelf\", \n \"symbol\": + \"ELF\", \n \"website_slug\": \"aelf\", \n \"rank\": + 68, \n \"circulating_supply\": 250000000.0, \n \"total_supply\": + 280000000.0, \n \"max_supply\": 1000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.4205430428, + \n \"volume_24h\": 7377150.10194667, \n \"market_cap\": + 105135761.0, \n \"percent_change_1h\": 1.55, \n \"percent_change_24h\": + 6.68, \n \"percent_change_7d\": 10.52\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 1229, \n \"name\": \"DigixDAO\", \n \"symbol\": + \"DGD\", \n \"website_slug\": \"digixdao\", \n \"rank\": + 69, \n \"circulating_supply\": 2000000.0, \n \"total_supply\": + 2000000.0, \n \"max_supply\": null, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 51.947970745, \n + \ \"volume_24h\": 444754.731313676, \n \"market_cap\": + 103895941.0, \n \"percent_change_1h\": 0.6, \n \"percent_change_24h\": + 1.3, \n \"percent_change_7d\": -5.62\n }\n + \ }, \n \"last_updated\": 1535811622\n }, \n {\n + \ \"id\": 2027, \n \"name\": \"Cryptonex\", \n \"symbol\": + \"CNX\", \n \"website_slug\": \"cryptonex\", \n \"rank\": + 70, \n \"circulating_supply\": 45440478.0, \n \"total_supply\": + 106878104.0, \n \"max_supply\": 210000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 2.2787965374, + \n \"volume_24h\": 3678992.59309836, \n \"market_cap\": + 103549604.0, \n \"percent_change_1h\": 2.43, \n \"percent_change_24h\": + 3.3, \n \"percent_change_7d\": 6.2\n }\n + \ }, \n \"last_updated\": 1535811632\n }, \n {\n + \ \"id\": 2349, \n \"name\": \"Mixin\", \n \"symbol\": + \"XIN\", \n \"website_slug\": \"mixin\", \n \"rank\": + 71, \n \"circulating_supply\": 442533.0, \n \"total_supply\": + 1000000.0, \n \"max_supply\": null, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 218.997430269, + \n \"volume_24h\": 72854.3130715827, \n \"market_cap\": + 96913651.0, \n \"percent_change_1h\": -1.23, \n \"percent_change_24h\": + -1.54, \n \"percent_change_7d\": -1.29\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 666, \n \"name\": \"AurumCoin\", \n \"symbol\": + \"AU\", \n \"website_slug\": \"aurumcoin\", \n \"rank\": + 72, \n \"circulating_supply\": 297999.0, \n \"total_supply\": + 297999.0, \n \"max_supply\": 300000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 324.363465077, + \n \"volume_24h\": 23195.8623975225, \n \"market_cap\": + 96659861.0, \n \"percent_change_1h\": -81.84, \n \"percent_change_24h\": + 743.32, \n \"percent_change_7d\": 1331.04\n }\n + \ }, \n \"last_updated\": 1535811565\n }, \n {\n + \ \"id\": 1586, \n \"name\": \"Ark\", \n \"symbol\": + \"ARK\", \n \"website_slug\": \"ark\", \n \"rank\": + 73, \n \"circulating_supply\": 104881926.0, \n \"total_supply\": + 136131926.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.9122987029, + \n \"volume_24h\": 343490.176996927, \n \"market_cap\": + 95683645.0, \n \"percent_change_1h\": 0.53, \n \"percent_change_24h\": + 2.16, \n \"percent_change_7d\": 8.48\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 2575, \n \"name\": \"Bitcoin Private\", \n + \ \"symbol\": \"BTCP\", \n \"website_slug\": \"bitcoin-private\", + \n \"rank\": 74, \n \"circulating_supply\": 20524490.0, + \n \"total_supply\": 20524490.0, \n \"max_supply\": + 21000000.0, \n \"quotes\": {\n \"USD\": {\n \"price\": + 4.6106439093, \n \"volume_24h\": 118579.933352135, \n \"market_cap\": + 94631115.0, \n \"percent_change_1h\": 0.64, \n \"percent_change_24h\": + 3.03, \n \"percent_change_7d\": 8.83\n }\n + \ }, \n \"last_updated\": 1535811640\n }, \n {\n + \ \"id\": 213, \n \"name\": \"MonaCoin\", \n \"symbol\": + \"MONA\", \n \"website_slug\": \"monacoin\", \n \"rank\": + 75, \n \"circulating_supply\": 61966600.0, \n \"total_supply\": + 61966600.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.4715433287, + \n \"volume_24h\": 399987.138287165, \n \"market_cap\": + 91186537.0, \n \"percent_change_1h\": -1.45, \n \"percent_change_24h\": + 0.18, \n \"percent_change_7d\": -5.85\n }\n + \ }, \n \"last_updated\": 1535811610\n }, \n {\n + \ \"id\": 1908, \n \"name\": \"Nebulas\", \n \"symbol\": + \"NAS\", \n \"website_slug\": \"nebulas-token\", \n \"rank\": + 76, \n \"circulating_supply\": 45500000.0, \n \"total_supply\": + 100000000.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.9924300904, + \n \"volume_24h\": 7100471.40067846, \n \"market_cap\": + 90655569.0, \n \"percent_change_1h\": 0.85, \n \"percent_change_24h\": + 10.71, \n \"percent_change_7d\": 11.89\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1757, \n \"name\": \"FunFair\", \n \"symbol\": + \"FUN\", \n \"website_slug\": \"funfair\", \n \"rank\": + 77, \n \"circulating_supply\": 5010848189.0, \n \"total_supply\": + 10999873621.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0179060597, + \n \"volume_24h\": 418642.059058804, \n \"market_cap\": + 89724547.0, \n \"percent_change_1h\": 0.22, \n \"percent_change_24h\": + 4.83, \n \"percent_change_7d\": 4.95\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 1727, \n \"name\": \"Bancor\", \n \"symbol\": + \"BNT\", \n \"website_slug\": \"bancor\", \n \"rank\": + 78, \n \"circulating_supply\": 52830853.0, \n \"total_supply\": + 77500051.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.6934148836, + \n \"volume_24h\": 3062383.15745485, \n \"market_cap\": + 89464553.0, \n \"percent_change_1h\": 0.2, \n \"percent_change_24h\": + 3.47, \n \"percent_change_7d\": 5.23\n }\n + \ }, \n \"last_updated\": 1535811624\n }, \n {\n + \ \"id\": 1750, \n \"name\": \"GXChain\", \n \"symbol\": + \"GXS\", \n \"website_slug\": \"gxchain\", \n \"rank\": + 79, \n \"circulating_supply\": 60000000.0, \n \"total_supply\": + 100000000.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.4824028336, + \n \"volume_24h\": 1430344.59848698, \n \"market_cap\": + 88944170.0, \n \"percent_change_1h\": 0.51, \n \"percent_change_24h\": + 3.81, \n \"percent_change_7d\": 5.38\n }\n + \ }, \n \"last_updated\": 1535811622\n }, \n {\n + \ \"id\": 1698, \n \"name\": \"Horizen\", \n \"symbol\": + \"ZEN\", \n \"website_slug\": \"zencash\", \n \"rank\": + 80, \n \"circulating_supply\": 4623175.0, \n \"total_supply\": + 4623175.0, \n \"max_supply\": 21000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 19.1037223212, + \n \"volume_24h\": 621176.122570646, \n \"market_cap\": + 88319851.0, \n \"percent_change_1h\": -0.36, \n \"percent_change_24h\": + 3.57, \n \"percent_change_7d\": -5.33\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1966, \n \"name\": \"Decentraland\", \n \"symbol\": + \"MANA\", \n \"website_slug\": \"decentraland\", \n \"rank\": + 81, \n \"circulating_supply\": 1050141509.0, \n \"total_supply\": + 2644403343.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.078468719, + \n \"volume_24h\": 3541777.88849159, \n \"market_cap\": + 82403259.0, \n \"percent_change_1h\": -0.1, \n \"percent_change_24h\": + 3.97, \n \"percent_change_7d\": 14.75\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 2213, \n \"name\": \"QASH\", \n \"symbol\": + \"QASH\", \n \"website_slug\": \"qash\", \n \"rank\": + 82, \n \"circulating_supply\": 350000000.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2343885524, + \n \"volume_24h\": 939067.148582445, \n \"market_cap\": + 82035993.0, \n \"percent_change_1h\": 0.63, \n \"percent_change_24h\": + 7.59, \n \"percent_change_7d\": 3.24\n }\n + \ }, \n \"last_updated\": 1535811634\n }, \n {\n + \ \"id\": 2492, \n \"name\": \"Elastos\", \n \"symbol\": + \"ELA\", \n \"website_slug\": \"elastos\", \n \"rank\": + 83, \n \"circulating_supply\": 7929592.0, \n \"total_supply\": + 33968347.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 10.2879485266, + \n \"volume_24h\": 2981458.12103411, \n \"market_cap\": + 81579236.0, \n \"percent_change_1h\": -0.45, \n \"percent_change_24h\": + 4.72, \n \"percent_change_7d\": -3.19\n }\n + \ }, \n \"last_updated\": 1535811638\n }, \n {\n + \ \"id\": 2874, \n \"name\": \"Aurora\", \n \"symbol\": + \"AOA\", \n \"website_slug\": \"aurora\", \n \"rank\": + 84, \n \"circulating_supply\": 3460155505.0, \n \"total_supply\": + 10000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0223022223, + \n \"volume_24h\": 1119112.61857687, \n \"market_cap\": + 77169157.0, \n \"percent_change_1h\": 0.46, \n \"percent_change_24h\": + 4.4, \n \"percent_change_7d\": 26.68\n }\n + \ }, \n \"last_updated\": 1535811642\n }, \n {\n + \ \"id\": 2886, \n \"name\": \"TaTaTu\", \n \"symbol\": + \"TTU\", \n \"website_slug\": \"tatatu\", \n \"rank\": + 85, \n \"circulating_supply\": 96727971.0, \n \"total_supply\": + 10000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.7946737576, + \n \"volume_24h\": 317008.999296772, \n \"market_cap\": + 76867180.0, \n \"percent_change_1h\": 0.49, \n \"percent_change_24h\": + -3.78, \n \"percent_change_7d\": 4.7\n }\n + \ }, \n \"last_updated\": 1535811641\n }, \n {\n + \ \"id\": 2132, \n \"name\": \"Power Ledger\", \n \"symbol\": + \"POWR\", \n \"website_slug\": \"power-ledger\", \n \"rank\": + 86, \n \"circulating_supply\": 378540438.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2006154409, + \n \"volume_24h\": 2070673.55553213, \n \"market_cap\": + 75941057.0, \n \"percent_change_1h\": 0.78, \n \"percent_change_24h\": + 3.72, \n \"percent_change_7d\": 4.72\n }\n + \ }, \n \"last_updated\": 1535811634\n }, \n {\n + \ \"id\": 2300, \n \"name\": \"WAX\", \n \"symbol\": + \"WAX\", \n \"website_slug\": \"wax\", \n \"rank\": + 87, \n \"circulating_supply\": 930901783.0, \n \"total_supply\": + 1850000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0803617377, + \n \"volume_24h\": 442759.371245057, \n \"market_cap\": + 74808885.0, \n \"percent_change_1h\": 0.23, \n \"percent_change_24h\": + 7.95, \n \"percent_change_7d\": 11.91\n }\n + \ }, \n \"last_updated\": 1535811634\n }, \n {\n + \ \"id\": 66, \n \"name\": \"Nxt\", \n \"symbol\": + \"NXT\", \n \"website_slug\": \"nxt\", \n \"rank\": + 88, \n \"circulating_supply\": 998999942.0, \n \"total_supply\": + 998999942.0, \n \"max_supply\": 1000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.0740643126, + \n \"volume_24h\": 2567489.0993329, \n \"market_cap\": + 73990244.0, \n \"percent_change_1h\": -1.1, \n \"percent_change_24h\": + 5.01, \n \"percent_change_7d\": 7.34\n }\n + \ }, \n \"last_updated\": 1535811607\n }, \n {\n + \ \"id\": 1785, \n \"name\": \"Gas\", \n \"symbol\": + \"GAS\", \n \"website_slug\": \"gas\", \n \"rank\": + 89, \n \"circulating_supply\": 10128375.0, \n \"total_supply\": + 17190378.0, \n \"max_supply\": 100000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 7.2803638548, + \n \"volume_24h\": 3067075.31262327, \n \"market_cap\": + 73738256.0, \n \"percent_change_1h\": 2.25, \n \"percent_change_24h\": + 4.85, \n \"percent_change_7d\": 30.96\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1982, \n \"name\": \"Kyber Network\", \n \"symbol\": + \"KNC\", \n \"website_slug\": \"kyber-network\", \n \"rank\": + 90, \n \"circulating_supply\": 134132697.0, \n \"total_supply\": + 215625349.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.5486317407, + \n \"volume_24h\": 2644823.77468074, \n \"market_cap\": + 73589455.0, \n \"percent_change_1h\": 0.17, \n \"percent_change_24h\": + 2.81, \n \"percent_change_7d\": 7.88\n }\n + \ }, \n \"last_updated\": 1535811631\n }, \n {\n + \ \"id\": 2563, \n \"name\": \"TrueUSD\", \n \"symbol\": + \"TUSD\", \n \"website_slug\": \"trueusd\", \n \"rank\": + 91, \n \"circulating_supply\": 73008882.0, \n \"total_supply\": + 73008882.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.0000161046, + \n \"volume_24h\": 12200254.7636163, \n \"market_cap\": + 73010058.0, \n \"percent_change_1h\": -0.01, \n \"percent_change_24h\": + -0.16, \n \"percent_change_7d\": -0.23\n }\n + \ }, \n \"last_updated\": 1535811637\n }, \n {\n + \ \"id\": 2588, \n \"name\": \"Loom Network\", \n \"symbol\": + \"LOOM\", \n \"website_slug\": \"loom-network\", \n \"rank\": + 92, \n \"circulating_supply\": 590700945.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1234687033, + \n \"volume_24h\": 2736472.55078443, \n \"market_cap\": + 72933080.0, \n \"percent_change_1h\": 0.7, \n \"percent_change_24h\": + 3.74, \n \"percent_change_7d\": 32.77\n }\n + \ }, \n \"last_updated\": 1535811646\n }, \n {\n + \ \"id\": 1993, \n \"name\": \"Kin\", \n \"symbol\": + \"KIN\", \n \"website_slug\": \"kin\", \n \"rank\": + 93, \n \"circulating_supply\": 756097560976.0, \n \"total_supply\": + 10000000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 9.63561e-05, + \n \"volume_24h\": 967177.1591324, \n \"market_cap\": + 72854585.0, \n \"percent_change_1h\": -0.27, \n \"percent_change_24h\": + -2.87, \n \"percent_change_7d\": -11.51\n }\n + \ }, \n \"last_updated\": 1535811630\n }, \n {\n + \ \"id\": 1414, \n \"name\": \"ZCoin\", \n \"symbol\": + \"XZC\", \n \"website_slug\": \"zcoin\", \n \"rank\": + 94, \n \"circulating_supply\": 5544520.0, \n \"total_supply\": + 5544520.0, \n \"max_supply\": 21400000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 13.1257382073, + \n \"volume_24h\": 818315.394910241, \n \"market_cap\": + 72775919.0, \n \"percent_change_1h\": 1.52, \n \"percent_change_24h\": + 3.81, \n \"percent_change_7d\": -0.15\n }\n + \ }, \n \"last_updated\": 1535811624\n }, \n {\n + \ \"id\": 2092, \n \"name\": \"Nuls\", \n \"symbol\": + \"NULS\", \n \"website_slug\": \"nuls\", \n \"rank\": + 95, \n \"circulating_supply\": 40000000.0, \n \"total_supply\": + 40000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.8146375263, + \n \"volume_24h\": 5076699.40113887, \n \"market_cap\": + 72585501.0, \n \"percent_change_1h\": -0.12, \n \"percent_change_24h\": + 2.57, \n \"percent_change_7d\": 20.63\n }\n + \ }, \n \"last_updated\": 1535811633\n }, \n {\n + \ \"id\": 2246, \n \"name\": \"CyberMiles\", \n \"symbol\": + \"CMT\", \n \"website_slug\": \"cybermiles\", \n \"rank\": + 96, \n \"circulating_supply\": 695173307.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1029993491, + \n \"volume_24h\": 5433031.21916632, \n \"market_cap\": + 71602398.0, \n \"percent_change_1h\": 0.4, \n \"percent_change_24h\": + 6.22, \n \"percent_change_7d\": -1.23\n }\n + \ }, \n \"last_updated\": 1535811637\n }, \n {\n + \ \"id\": 1758, \n \"name\": \"TenX\", \n \"symbol\": + \"PAY\", \n \"website_slug\": \"tenx\", \n \"rank\": + 97, \n \"circulating_supply\": 109307861.0, \n \"total_supply\": + 205218256.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.6529564861, + \n \"volume_24h\": 4969139.47803235, \n \"market_cap\": + 71373277.0, \n \"percent_change_1h\": 0.72, \n \"percent_change_24h\": + 3.43, \n \"percent_change_7d\": 12.24\n }\n + \ }, \n \"last_updated\": 1535811626\n }, \n {\n + \ \"id\": 1776, \n \"name\": \"MCO\", \n \"symbol\": + \"MCO\", \n \"website_slug\": \"mco\", \n \"rank\": + 98, \n \"circulating_supply\": 15793831.0, \n \"total_supply\": + 31587682.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 4.4389847295, + \n \"volume_24h\": 6643827.67916647, \n \"market_cap\": + 70108575.0, \n \"percent_change_1h\": 0.09, \n \"percent_change_24h\": + 2.07, \n \"percent_change_7d\": 2.26\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 1934, \n \"name\": \"Loopring\", \n \"symbol\": + \"LRC\", \n \"website_slug\": \"loopring\", \n \"rank\": + 99, \n \"circulating_supply\": 572074043.0, \n \"total_supply\": + 1374956262.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1220306932, + \n \"volume_24h\": 1593998.49480081, \n \"market_cap\": + 69810592.0, \n \"percent_change_1h\": 0.23, \n \"percent_change_24h\": + 3.61, \n \"percent_change_7d\": 13.63\n }\n + \ }, \n \"last_updated\": 1535811628\n }, \n {\n + \ \"id\": 2416, \n \"name\": \"Theta Token\", \n \"symbol\": + \"THETA\", \n \"website_slug\": \"theta-token\", \n \"rank\": + 100, \n \"circulating_supply\": 664002689.0, \n \"total_supply\": + 1000000000.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1047151595, + \n \"volume_24h\": 3034135.44049379, \n \"market_cap\": + 69531147.0, \n \"percent_change_1h\": 0.79, \n \"percent_change_24h\": + 5.11, \n \"percent_change_7d\": 0.87\n }\n + \ }, \n \"last_updated\": 1535811635\n }\n ], + \n \"metadata\": {\n \"timestamp\": 1535811128, \n \"num_cryptocurrencies\": + 1910, \n \"error\": null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:40 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/global_coin_response.yml b/spec/fixtures/cassettes/global_coin_response.yml index c49161b..40bc7ca 100644 --- a/spec/fixtures/cassettes/global_coin_response.yml +++ b/spec/fixtures/cassettes/global_coin_response.yml @@ -42,4 +42,55 @@ http_interactions: 756, \n \"active_assets\": 128, \n \"active_markets\": 4179\n}" http_version: recorded_at: Fri, 16 Jun 2017 20:45:51 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/global/?convert=USD + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:22:45 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d6e4db3548a6b74e0a81cce0f2c51813c1535811765; expires=Sun, 01-Sep-19 + 14:22:45 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - HIT + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 4538640fbc7b6a01-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": {\n \"active_cryptocurrencies\": 1910, \n \"active_markets\": + 13693, \n \"bitcoin_percentage_of_market_cap\": 52.53, \n \"quotes\": + {\n \"USD\": {\n \"total_market_cap\": 231841348919.0, + \n \"total_volume_24h\": 12735326175.0\n }\n }, + \n \"last_updated\": 1535811622\n }, \n \"metadata\": {\n \"timestamp\": + 1535811125, \n \"error\": null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:45 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/global_eur_coin_response.yml b/spec/fixtures/cassettes/global_eur_coin_response.yml index ac263e6..63f8378 100644 --- a/spec/fixtures/cassettes/global_eur_coin_response.yml +++ b/spec/fixtures/cassettes/global_eur_coin_response.yml @@ -43,4 +43,57 @@ http_interactions: 96559842202.0, \n \"total_24h_volume_eur\": 3622474988.0\n}" http_version: recorded_at: Fri, 16 Jun 2017 20:45:52 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/global/?convert=EUR + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:34:06 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d6d62e551932588f200381efb22972b7b1535812445; expires=Sun, 01-Sep-19 + 14:34:05 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - EXPIRED + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 453874a9fb116b8b-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": {\n \"active_cryptocurrencies\": 1910, \n \"active_markets\": + 13693, \n \"bitcoin_percentage_of_market_cap\": 52.48, \n \"quotes\": + {\n \"USD\": {\n \"total_market_cap\": 231635642248.0, + \n \"total_volume_24h\": 12785386292.0\n }, \n \"EUR\": + {\n \"total_market_cap\": 199484615104.0, \n \"total_volume_24h\": + 11010774675.0\n }\n }, \n \"last_updated\": 1535812402\n + \ }, \n \"metadata\": {\n \"timestamp\": 1535811912, \n \"error\": + null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:34:07 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/limit_coin_response.yml b/spec/fixtures/cassettes/limit_coin_response.yml index c3cfa60..28df8fe 100644 --- a/spec/fixtures/cassettes/limit_coin_response.yml +++ b/spec/fixtures/cassettes/limit_coin_response.yml @@ -106,4 +106,142 @@ http_interactions: \"1497641677\"\n }\n]" http_version: recorded_at: Fri, 16 Jun 2017 19:37:32 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/?limit=10&structure=array + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:22:41 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d556590db5f024e87fbec36bb52feb7891535811760; expires=Sun, 01-Sep-19 + 14:22:40 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - MISS + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 453863f1a9c435a2-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": [\n {\n \"id\": 1, \n \"name\": + \"Bitcoin\", \n \"symbol\": \"BTC\", \n \"website_slug\": + \"bitcoin\", \n \"rank\": 1, \n \"circulating_supply\": + 17243775.0, \n \"total_supply\": 17243775.0, \n \"max_supply\": + 21000000.0, \n \"quotes\": {\n \"USD\": {\n \"price\": + 7061.66986717, \n \"volume_24h\": 4278053675.05673, \n + \ \"market_cap\": 121769846314.0, \n \"percent_change_1h\": + 0.17, \n \"percent_change_24h\": 1.69, \n \"percent_change_7d\": + 4.97\n }\n }, \n \"last_updated\": 1535811683\n + \ }, \n {\n \"id\": 1027, \n \"name\": + \"Ethereum\", \n \"symbol\": \"ETH\", \n \"website_slug\": + \"ethereum\", \n \"rank\": 2, \n \"circulating_supply\": + 101688905.0, \n \"total_supply\": 101688905.0, \n \"max_supply\": + null, \n \"quotes\": {\n \"USD\": {\n \"price\": + 286.672651522, \n \"volume_24h\": 1352632271.17001, \n + \ \"market_cap\": 29151427973.0, \n \"percent_change_1h\": + 0.45, \n \"percent_change_24h\": 2.8, \n \"percent_change_7d\": + 2.22\n }\n }, \n \"last_updated\": 1535811698\n + \ }, \n {\n \"id\": 52, \n \"name\": \"XRP\", + \n \"symbol\": \"XRP\", \n \"website_slug\": \"ripple\", + \n \"rank\": 3, \n \"circulating_supply\": 39650153121.0, + \n \"total_supply\": 99991852985.0, \n \"max_supply\": + 100000000000.0, \n \"quotes\": {\n \"USD\": {\n + \ \"price\": 0.3391636373, \n \"volume_24h\": + 228186264.429865, \n \"market_cap\": 13447890151.0, \n + \ \"percent_change_1h\": 0.15, \n \"percent_change_24h\": + 2.72, \n \"percent_change_7d\": 3.75\n }\n + \ }, \n \"last_updated\": 1535811723\n }, \n {\n + \ \"id\": 1831, \n \"name\": \"Bitcoin Cash\", \n \"symbol\": + \"BCH\", \n \"website_slug\": \"bitcoin-cash\", \n \"rank\": + 4, \n \"circulating_supply\": 17324663.0, \n \"total_supply\": + 17324663.0, \n \"max_supply\": 21000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 573.671883372, + \n \"volume_24h\": 331603330.463086, \n \"market_cap\": + 9938671765.0, \n \"percent_change_1h\": 2.37, \n \"percent_change_24h\": + 6.56, \n \"percent_change_7d\": 7.5\n }\n + \ }, \n \"last_updated\": 1535811689\n }, \n {\n + \ \"id\": 1765, \n \"name\": \"EOS\", \n \"symbol\": + \"EOS\", \n \"website_slug\": \"eos\", \n \"rank\": + 5, \n \"circulating_supply\": 906245118.0, \n \"total_supply\": + 1006245120.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 6.6007168713, + \n \"volume_24h\": 905315405.517365, \n \"market_cap\": + 5981867437.0, \n \"percent_change_1h\": 0.34, \n \"percent_change_24h\": + 6.52, \n \"percent_change_7d\": 31.83\n }\n + \ }, \n \"last_updated\": 1535811682\n }, \n {\n + \ \"id\": 512, \n \"name\": \"Stellar\", \n \"symbol\": + \"XLM\", \n \"website_slug\": \"stellar\", \n \"rank\": + 6, \n \"circulating_supply\": 18773340284.0, \n \"total_supply\": + 104244271426.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.2266392208, + \n \"volume_24h\": 51014738.3336376, \n \"market_cap\": + 4254775213.0, \n \"percent_change_1h\": 0.63, \n \"percent_change_24h\": + 3.9, \n \"percent_change_7d\": 4.67\n }\n + \ }, \n \"last_updated\": 1535811733\n }, \n {\n + \ \"id\": 2, \n \"name\": \"Litecoin\", \n \"symbol\": + \"LTC\", \n \"website_slug\": \"litecoin\", \n \"rank\": + 7, \n \"circulating_supply\": 58101054.0, \n \"total_supply\": + 58101054.0, \n \"max_supply\": 84000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 63.7510076456, + \n \"volume_24h\": 289294542.048178, \n \"market_cap\": + 3704000724.0, \n \"percent_change_1h\": -0.23, \n \"percent_change_24h\": + 6.74, \n \"percent_change_7d\": 10.23\n }\n + \ }, \n \"last_updated\": 1535811720\n }, \n {\n + \ \"id\": 825, \n \"name\": \"Tether\", \n \"symbol\": + \"USDT\", \n \"website_slug\": \"tether\", \n \"rank\": + 8, \n \"circulating_supply\": 2742140336.0, \n \"total_supply\": + 3080109502.0, \n \"max_supply\": null, \n \"quotes\": + {\n \"USD\": {\n \"price\": 1.0007886702, + \n \"volume_24h\": 2637803763.44931, \n \"market_cap\": + 2744302980.0, \n \"percent_change_1h\": 0.19, \n \"percent_change_24h\": + 0.0, \n \"percent_change_7d\": 0.12\n }\n + \ }, \n \"last_updated\": 1535811746\n }, \n {\n + \ \"id\": 2010, \n \"name\": \"Cardano\", \n \"symbol\": + \"ADA\", \n \"website_slug\": \"cardano\", \n \"rank\": + 9, \n \"circulating_supply\": 25927070538.0, \n \"total_supply\": + 31112483745.0, \n \"max_supply\": 45000000000.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.1040200019, + \n \"volume_24h\": 52048429.4421475, \n \"market_cap\": + 2696933927.0, \n \"percent_change_1h\": -0.06, \n \"percent_change_24h\": + 4.36, \n \"percent_change_7d\": 11.0\n }\n + \ }, \n \"last_updated\": 1535811751\n }, \n {\n + \ \"id\": 1720, \n \"name\": \"IOTA\", \n \"symbol\": + \"MIOTA\", \n \"website_slug\": \"iota\", \n \"rank\": + 10, \n \"circulating_supply\": 2779530283.0, \n \"total_supply\": + 2779530283.0, \n \"max_supply\": 2779530283.0, \n \"quotes\": + {\n \"USD\": {\n \"price\": 0.7375321546, + \n \"volume_24h\": 52473201.6155642, \n \"market_cap\": + 2049992958.0, \n \"percent_change_1h\": 0.96, \n \"percent_change_24h\": + 5.36, \n \"percent_change_7d\": 38.32\n }\n + \ }, \n \"last_updated\": 1535811749\n }\n ], + \n \"metadata\": {\n \"timestamp\": 1535811227, \n \"num_cryptocurrencies\": + 1910, \n \"error\": null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:41 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/single_coin_response.yml b/spec/fixtures/cassettes/single_coin_response.yml index bc024ae..56d17a7 100644 --- a/spec/fixtures/cassettes/single_coin_response.yml +++ b/spec/fixtures/cassettes/single_coin_response.yml @@ -46,4 +46,106 @@ http_interactions: \"-10.9\", \n \"last_updated\": \"1497643757\"\n }\n]" http_version: recorded_at: Fri, 16 Jun 2017 20:13:31 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/bitcoin/?convert=USD + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 404 + message: NOT FOUND + headers: + Date: + - Sat, 01 Sep 2018 14:22:42 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d2cfef198ae4ad9e1b32bbdeef4f2289a1535811762; expires=Sun, 01-Sep-19 + 14:22:42 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - MISS + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 453863f96c733488-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": null, \n \"metadata\": {\n \"timestamp\": + 1535811226, \n \"error\": \"id not found\"\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:42 GMT +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/1/?convert=USD + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:26:40 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d5bb2caa7f04f4d4512bdab20d35f50991535812000; expires=Sun, 01-Sep-19 + 14:26:40 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - HIT + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 453869cbda0434b2-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": {\n \"id\": 1, \n \"name\": \"Bitcoin\", + \n \"symbol\": \"BTC\", \n \"website_slug\": \"bitcoin\", \n + \ \"rank\": 1, \n \"circulating_supply\": 17243775.0, \n \"total_supply\": + 17243775.0, \n \"max_supply\": 21000000.0, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 7061.35455008, \n \"volume_24h\": + 4282030549.13706, \n \"market_cap\": 121764409057.0, \n \"percent_change_1h\": + 0.15, \n \"percent_change_24h\": 1.67, \n \"percent_change_7d\": + 4.96\n }\n }, \n \"last_updated\": 1535811866\n }, + \n \"metadata\": {\n \"timestamp\": 1535811353, \n \"error\": + null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:26:40 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/single_eur_coin_response.yml b/spec/fixtures/cassettes/single_eur_coin_response.yml index a3dc27f..09c4696 100644 --- a/spec/fixtures/cassettes/single_eur_coin_response.yml +++ b/spec/fixtures/cassettes/single_eur_coin_response.yml @@ -37,29 +37,120 @@ http_interactions: - 37006e05cc932f0b-DEL body: encoding: ASCII-8BIT - string: |- - [ - { - "id": "bitcoin", - "name": "Bitcoin", - "symbol": "BTC", - "rank": "1", - "price_usd": "11910.6", - "price_btc": "1.0", - "24h_volume_usd": "6975910000.0", - "market_cap_usd": "199176342487", - "available_supply": "16722612.0", - "total_supply": "16722612.0", - "max_supply": "21000000.0", - "percent_change_1h": "-0.14", - "percent_change_24h": "2.49", - "percent_change_7d": "16.4", - "last_updated": "1512518052", - "price_eur": "10076.0460138", - "24h_volume_eur": "5901431510.43", - "market_cap_eur": "168497807983" - } - ] + string: "[\n {\n \"id\": \"bitcoin\", \n \"name\": \"Bitcoin\", + \n \"symbol\": \"BTC\", \n \"rank\": \"1\", \n \"price_usd\": + \"11910.6\", \n \"price_btc\": \"1.0\", \n \"24h_volume_usd\": + \"6975910000.0\", \n \"market_cap_usd\": \"199176342487\", \n \"available_supply\": + \"16722612.0\", \n \"total_supply\": \"16722612.0\", \n \"max_supply\": + \"21000000.0\", \n \"percent_change_1h\": \"-0.14\", \n \"percent_change_24h\": + \"2.49\", \n \"percent_change_7d\": \"16.4\", \n \"last_updated\": + \"1512518052\", \n \"price_eur\": \"10076.0460138\", \n \"24h_volume_eur\": + \"5901431510.43\", \n \"market_cap_eur\": \"168497807983\"\n }\n]" http_version: recorded_at: Fri, 16 Jun 2017 20:13:31 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/bitcoin/?convert=EUR + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 404 + message: NOT FOUND + headers: + Date: + - Sat, 01 Sep 2018 14:22:44 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d1111b8b897ebd564aa188d3fb9d14e2b1535811764; expires=Sun, 01-Sep-19 + 14:22:44 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - HIT + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 45386408df093488-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": null, \n \"metadata\": {\n \"timestamp\": + 1535811183, \n \"error\": \"id not found\"\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:44 GMT +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/1/?convert=EUR + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 01 Sep 2018 14:31:48 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d6ce49989465159f98c3fc690501ee4fe1535812308; expires=Sun, 01-Sep-19 + 14:31:48 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - HIT + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 45387151cf916b8b-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": {\n \"id\": 1, \n \"name\": \"Bitcoin\", + \n \"symbol\": \"BTC\", \n \"website_slug\": \"bitcoin\", \n + \ \"rank\": 1, \n \"circulating_supply\": 17243775.0, \n \"total_supply\": + 17243775.0, \n \"max_supply\": 21000000.0, \n \"quotes\": {\n + \ \"USD\": {\n \"price\": 7060.30799031, \n \"volume_24h\": + 4283200319.29742, \n \"market_cap\": 121746362416.0, \n \"percent_change_1h\": + 0.13, \n \"percent_change_24h\": 1.64, \n \"percent_change_7d\": + 4.95\n }, \n \"EUR\": {\n \"price\": + 6080.337241255, \n \"volume_24h\": 3688692114.978945, \n \"market_cap\": + 104847967312.0, \n \"percent_change_1h\": 0.13, \n \"percent_change_24h\": + 1.64, \n \"percent_change_7d\": 4.95\n }\n }, + \n \"last_updated\": 1535812224\n }, \n \"metadata\": {\n \"timestamp\": + 1535811760, \n \"error\": null\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:31:48 GMT +recorded_with: VCR 4.0.0 diff --git a/spec/fixtures/cassettes/wrong_coin_response.yml b/spec/fixtures/cassettes/wrong_coin_response.yml index babb8e2..a695ca3 100644 --- a/spec/fixtures/cassettes/wrong_coin_response.yml +++ b/spec/fixtures/cassettes/wrong_coin_response.yml @@ -43,4 +43,51 @@ http_interactions: } http_version: recorded_at: Fri, 16 Jun 2017 20:15:21 GMT -recorded_with: VCR 3.0.3 +- request: + method: get + uri: https://api.coinmarketcap.com/v2/ticker/random/?convert=USD + body: + encoding: US-ASCII + string: '' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + User-Agent: + - Ruby + response: + status: + code: 404 + message: NOT FOUND + headers: + Date: + - Sat, 01 Sep 2018 14:22:43 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Set-Cookie: + - __cfduid=d9b855252f61dfc8d9fb093571dac74791535811763; expires=Sun, 01-Sep-19 + 14:22:43 GMT; path=/; domain=.coinmarketcap.com; HttpOnly; Secure + Access-Control-Allow-Origin: + - "*" + Cf-Cache-Status: + - MISS + Vary: + - Accept-Encoding + Expect-Ct: + - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" + Server: + - cloudflare + Cf-Ray: + - 45386401ee9969f5-LHR + body: + encoding: ASCII-8BIT + string: "{\n \"data\": null, \n \"metadata\": {\n \"timestamp\": + 1535811229, \n \"error\": \"id not found\"\n }\n}" + http_version: + recorded_at: Sat, 01 Sep 2018 14:22:43 GMT +recorded_with: VCR 4.0.0 From 8ac179ec1de2690067f16474ba85445e08dc4aa3 Mon Sep 17 00:00:00 2001 From: Ankit Samarthya Date: Sat, 1 Sep 2018 21:54:29 +0700 Subject: [PATCH 2/2] documentation change --- README.md | 264 +++++++++++++++++++++++++------------ spec/coinmarketcap_spec.rb | 2 +- 2 files changed, 180 insertions(+), 86 deletions(-) diff --git a/README.md b/README.md index 90c843f..6a41ad8 100644 --- a/README.md +++ b/README.md @@ -29,57 +29,69 @@ To get information for multiple coins use the `coins` method. | Name | Type | Description | | :------------- | :------------- | :------------- | -| `limit` | int | Return a maximum of `limit` results (default is 100, use 0 to return all results) | +| `limit` | int | Return a maximum of `limit` results (default is nil which returns all results) | +**Examples** +```ruby + Coinmarketcap.coins + #=> returns array of all available coins sorted by rank + + Coinmarketcap.coins(limit = 20) + #=> returns array of only 20 coins sorted by rank +``` **Sample Response** ```json -[ +{ + "data": [ { - "id": "bitcoin", - "name": "Bitcoin", - "symbol": "BTC", - "rank": "1", - "price_usd": "573.137", - "price_btc": "1.0", - "24h_volume_usd": "72855700.0", - "market_cap_usd": "9080883500.0", - "available_supply": "15844176.0", - "total_supply": "15844176.0", - "percent_change_1h": "0.04", - "percent_change_24h": "-0.3", - "percent_change_7d": "-0.57", - "last_updated": "1472762067" + "id": 1, + "name": "Bitcoin", + "symbol": "BTC", + "website_slug": "bitcoin", + "rank": 1, + "circulating_supply": 17243837.0, + "total_supply": 17243837.0, + "max_supply": 21000000.0, + "quotes": { + "USD": { + "price": 7046.61259816, + "volume_24h": 4289789887.93929, + "market_cap": 121510639045.0, + "percent_change_1h": -0.09, + "percent_change_24h": 1.42, + "percent_change_7d": 4.74 + } + }, + "last_updated": 1535812825 }, { - "id": "ethereum", - "name": "Ethereum", - "symbol": "ETH", - "rank": "2", - "price_usd": "12.1844", - "price_btc": "0.021262", - "24h_volume_usd": "24085900.0", - "market_cap_usd": "1018098455.0", - "available_supply": "83557537.0", - "total_supply": "83557537.0", - "percent_change_1h": "-0.58", - "percent_change_24h": "6.34", - "percent_change_7d": "8.59", - "last_updated": "1472762062" - }, - ... -] -``` - -**Examples** -```ruby - Coinmarketcap.coins - #=> returns array of 100 coins - - Coinmarketcap.coins(0) - #=> returns array of all available coins - - Coinmarketcap.coins(20) - #=> returns array of only 20 coins + "id": 1027, + "name": "Ethereum", + "symbol": "ETH", + "website_slug": "ethereum", + "rank": 2, + "circulating_supply": 101689192.0, + "total_supply": 101689192.0, + "max_supply": null, + "quotes": { + "USD": { + "price": 287.025145487, + "volume_24h": 1359873785.37404, + "market_cap": 29187355119.0, + "percent_change_1h": 0.5, + "percent_change_24h": 2.93, + "percent_change_7d": 2.34 + } + }, + "last_updated": 1535812836 + } + ], + "metadata": { + "timestamp": 1535812339, + "num_cryptocurrencies": 1910, + "error": null + } +} ``` ### Coin @@ -89,42 +101,89 @@ To get information for a specific coin use the `coin` method. | Name | Type | Description | | :------------- | :------------- | :------------- | -| `id` | string | **required**. Return information for coin with `id` | +| `id` | integer | **required**. Use the ID returned from all coins api | | `currency` | string | return *price*, *24h volume*, and *market cap* in terms of another currency. Valid values are "AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR". (default is "USD") | +**Examples** +```ruby + Coinmarketcap.coin(1) + #=> returns information about coin with '1' as its id. + # Price, 24h volume and market cap are in USD +``` **Sample Response** ```json -[ - { - "id": "bitcoin", - "name": "Bitcoin", - "symbol": "BTC", - "rank": "1", - "price_usd": "573.137", - "price_btc": "1.0", - "24h_volume_usd": "72855700.0", - "market_cap_usd": "9080883500.0", - "available_supply": "15844176.0", - "total_supply": "15844176.0", - "max_supply": "21000000.0", - "percent_change_1h": "0.04", - "percent_change_24h": "-0.3", - "percent_change_7d": "-0.57", - "last_updated": "1472762067" - } -] +{ + "data": { + "id": 1, + "name": "Bitcoin", + "symbol": "BTC", + "website_slug": "bitcoin", + "rank": 1, + "circulating_supply": 17243837.0, + "total_supply": 17243837.0, + "max_supply": 21000000.0, + "quotes": { + "USD": { + "price": 7056.36503616, + "volume_24h": 4310812630.28682, + "market_cap": 121678808496.0, + "percent_change_1h": 0.04, + "percent_change_24h": 1.54, + "percent_change_7d": 4.88 + } + }, + "last_updated": 1535813063 + }, + "metadata": { + "timestamp": 1535812601, + "error": null + } +} ``` -**Examples** ```ruby - Coinmarketcap.coin('BTC') - #=> returns information about coin with 'BTC' as its ticker symbol. - # Price, 24h volume and market cap are in USD - - Coinmarketcap.coin('BTC', 'EUR') - #=> returns information about coin with 'BTC' as its ticker symbol. + Coinmarketcap.coin(1, 'EUR') + #=> returns information about coin with '1' as its id. # Price, 24h volume and market cap are in EUR ``` +**Sample Response** +```json +{ + "data": { + "id": 1, + "name": "Bitcoin", + "symbol": "BTC", + "website_slug": "bitcoin", + "rank": 1, + "circulating_supply": 17243837.0, + "total_supply": 17243837.0, + "max_supply": 21000000.0, + "quotes": { + "USD": { + "price": 7057.5191433, + "volume_24h": 4315628117.49539, + "market_cap": 121698709731.0, + "percent_change_1h": 0.06, + "percent_change_24h": 1.56, + "percent_change_7d": 4.9 + }, + "EUR": { + "price": 6077.93548621, + "volume_24h": 3716618934.7870364, + "market_cap": 104806928821.0, + "percent_change_1h": 0.06, + "percent_change_24h": 1.56, + "percent_change_7d": 4.9 + } + }, + "last_updated": 1535813303 + }, + "metadata": { + "timestamp": 1535812810, + "error": null + } +} +``` ### Global To get global (general) data, use the `global` method. @@ -135,29 +194,64 @@ To get global (general) data, use the `global` method. | :------------- | :------------- | :------------- | | `currency` | string | return *price*, *24h volume*, and *market cap* in terms of another currency. Valid values are "AUD", "BRL", "CAD", "CHF", "CLP", "CNY", "CZK", "DKK", "EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY", "KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR". (default is "USD") | -**Sample Response** -```json -{ - "total_market_cap_usd": 201241796675, - "total_24h_volume_usd": 4548680009, - "bitcoin_percentage_of_market_cap": 62.54, - "active_currencies": 896, - "active_assets": 360, - "active_markets": 6439, - "last_updated": 1509909852 -} -``` - **Examples** ```ruby Coinmarketcap.global #=> returns global data # Price, 24h volume and market cap are in USD +``` +**Sample Response** +```json +{ + "data": { + "active_cryptocurrencies": 1910, + "active_markets": 13693, + "bitcoin_percentage_of_market_cap": 52.38, + "quotes": { + "USD": { + "total_market_cap": 232365707542.0, + "total_volume_24h": 12929935868.0 + } + }, + "last_updated": 1535813364 + }, + "metadata": { + "timestamp": 1535812887, + "error": null + } +} +``` +```ruby Coinmarketcap.global('EUR') #=> returns global data # Price, 24h volume and market cap are in EUR ``` +**Sample Response** +```json +{ + "data": { + "active_cryptocurrencies": 1910, + "active_markets": 13693, + "bitcoin_percentage_of_market_cap": 52.38, + "quotes": { + "USD": { + "total_market_cap": 232328115855.0, + "total_volume_24h": 12928585948.0 + }, + "EUR": { + "total_market_cap": 200080973374.0, + "total_volume_24h": 11134098218.0 + } + }, + "last_updated": 1535813303 + }, + "metadata": { + "timestamp": 1535812850, + "error": null + } +} +``` ## Development diff --git a/spec/coinmarketcap_spec.rb b/spec/coinmarketcap_spec.rb index 64e4881..fa7f8c1 100644 --- a/spec/coinmarketcap_spec.rb +++ b/spec/coinmarketcap_spec.rb @@ -8,7 +8,7 @@ describe "#get_historical_price" do context 'with valid id and start and end dates' do it "should receive an non empty array" do - VCR.use_cassette('historical_price_response', :record => :new_episodes) do + VCR.use_cassette('historical_price_response') do data = Coinmarketcap.get_historical_price('bitcoin', '20170908', '20170914') expect(data).to be_a Array expect(data.count).to be > 0