Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Instructions
- # You will need to sniff the apiKey from an existing API call after you are logged in and paste them here.
- # If you know what pairs you trade, you should keep only those you need in the pairs hash, or else every pair will be queried
- # The pairId(s) can be found in the select box dropdowns on the top right of the Trade History Page
- # Some are "hidden", so you may have to loop through all numbers 1-260 or so to discover. I only found BCAP by trial and error (96)
- # This doesn't spit out a CSV, but you can just paste the output here https://konklone.io/json/
- #
- # May take awhile to run, check the errors list for timeouts
- require 'rubygems'
- require 'json'
- key = 'REPLACE_WITH_API_KEY'
- json_data = []
- successful_pairs = []
- failed_pairs = []
- non_traded_pairs = []
- pairs = {
- '1' => 'BTC/LTC',
- '7' => 'BTC/DASH',
- '10' => 'BTC/ICN',
- '11' => 'BTC/ETH',
- '16' => 'BTC/GNT',
- '17' => 'BTC/WINGS',
- '25' => 'BTC/WAVES',
- '27' => 'BTC/MLN',
- '28' => 'BTC/TIME',
- '60' => 'BTC/REP',
- '61' => 'BTC/EDG',
- '67' => 'BTC/RLC',
- '70' => 'BTC/TRST',
- '78' => 'BTC/GNO',
- '81' => 'BTC/GUP',
- '84' => 'BTC/TAAS',
- '90' => 'BTC/TKN',
- '96' => 'BTC/BCAP',
- '99' => 'BTC/ANT',
- '102' => 'BTC/BAT',
- '105' => 'BTC/QRL',
- '108' => 'BTC/BNT',
- '111' => 'BTC/MGO',
- '114' => 'BTC/MYST',
- '117' => 'BTC/SNGLS',
- '120' => 'BTC/PTOY',
- '123' => 'BTC/CFI',
- '126' => 'BTC/SNM',
- '129' => 'BTC/SNT',
- '132' => 'BTC/MCO',
- '135' => 'BTC/STORJ',
- '138' => 'BTC/ADX',
- '141' => 'BTC/EOS',
- '144' => 'BTC/PAY',
- '147' => 'BTC/XID',
- '150' => 'BTC/OMG',
- '153' => 'BTC/SAN',
- '159' => 'BTC/CVC',
- '162' => 'BTC/NET',
- '165' => 'BTC/DGD',
- '170' => 'BTC/OAX',
- '173' => 'BTC/BCC',
- '177' => 'BTC/DNT',
- '180' => 'BTC/STX',
- '183' => 'BTC/ZRX',
- '186' => 'BTC/TNT',
- '189' => 'BTC/AE',
- '192' => 'BTC/VEN',
- '195' => 'BTC/BMC',
- '198' => 'BTC/MANA',
- '201' => 'BTC/PRO',
- '204' => 'BTC/KNC',
- '207' => 'BTC/SALT',
- '210' => 'BTC/IND',
- '213' => 'BTC/TRX',
- '216' => 'BTC/ENG',
- '219' => 'BTC/AST',
- '222' => 'BTC/REQ',
- '225' => 'BTC/NEU',
- '228' => 'BTC/SRN',
- '29' => 'ETH/GNT',
- '31' => 'ETH/LTC',
- '33' => 'ETH/DASH',
- '35' => 'ETH/ICN',
- '37' => 'ETH/MLN',
- '40' => 'ETH/WAVES',
- '41' => 'ETH/TIME',
- '62' => 'ETH/REP',
- '64' => 'ETH/EDG',
- '68' => 'ETH/RLC',
- '71' => 'ETH/TRST',
- '73' => 'ETH/WINGS',
- '79' => 'ETH/GNO',
- '82' => 'ETH/GUP',
- '85' => 'ETH/TAAS',
- '91' => 'ETH/TKN',
- '100' => 'ETH/ANT',
- '103' => 'ETH/BAT',
- '106' => 'ETH/QRL',
- '109' => 'ETH/BNT',
- '112' => 'ETH/MGO',
- '115' => 'ETH/MYST',
- '118' => 'ETH/SNGLS',
- '121' => 'ETH/PTOY',
- '124' => 'ETH/CFI',
- '127' => 'ETH/SNM',
- '130' => 'ETH/SNT',
- '133' => 'ETH/MCO',
- '136' => 'ETH/STORJ',
- '139' => 'ETH/ADX',
- '142' => 'ETH/EOS',
- '145' => 'ETH/PAY',
- '148' => 'ETH/XID',
- '151' => 'ETH/OMG',
- '154' => 'ETH/SAN',
- '160' => 'ETH/CVC',
- '163' => 'ETH/NET',
- '166' => 'ETH/DGD',
- '171' => 'ETH/OAX',
- '175' => 'ETH/BCC',
- '178' => 'ETH/DNT',
- '181' => 'ETH/STX',
- '184' => 'ETH/ZRX',
- '187' => 'ETH/TNT',
- '190' => 'ETH/AE',
- '193' => 'ETH/VEN',
- '196' => 'ETH/BMC',
- '199' => 'ETH/MANA',
- '202' => 'ETH/PRO',
- '205' => 'ETH/KNC',
- '208' => 'ETH/SALT',
- '211' => 'ETH/IND',
- '214' => 'ETH/TRX',
- '217' => 'ETH/ENG',
- '220' => 'ETH/AST',
- '223' => 'ETH/REQ',
- '226' => 'ETH/NEU',
- '229' => 'ETH/SRN',
- '46' => 'USDT/LTC',
- '47' => 'USDT/BTC',
- '48' => 'USDT/DASH',
- '49' => 'USDT/ETH',
- '51' => 'USDT/ICN',
- '52' => 'USDT/GNT',
- '57' => 'USDT/WAVES',
- '58' => 'USDT/MLN',
- '59' => 'USDT/TIME',
- '65' => 'USDT/REP',
- '66' => 'USDT/EDG',
- '69' => 'USDT/RLC',
- '72' => 'USDT/TRST',
- '74' => 'USDT/WINGS',
- '80' => 'USDT/GNO',
- '83' => 'USDT/GUP',
- '86' => 'USDT/TAAS',
- '92' => 'USDT/TKN',
- '101' => 'USDT/ANT',
- '104' => 'USDT/BAT',
- '107' => 'USDT/QRL',
- '110' => 'USDT/BNT',
- '113' => 'USDT/MGO',
- '116' => 'USDT/MYST',
- '119' => 'USDT/SNGLS',
- '122' => 'USDT/PTOY',
- '125' => 'USDT/CFI',
- '128' => 'USDT/SNM',
- '131' => 'USDT/SNT',
- '134' => 'USDT/MCO',
- '137' => 'USDT/STORJ',
- '140' => 'USDT/ADX',
- '143' => 'USDT/EOS',
- '146' => 'USDT/PAY',
- '149' => 'USDT/XID',
- '152' => 'USDT/OMG',
- '155' => 'USDT/SAN',
- '161' => 'USDT/CVC',
- '164' => 'USDT/NET',
- '167' => 'USDT/DGD',
- '172' => 'USDT/OAX',
- '176' => 'USDT/BCC',
- '179' => 'USDT/DNT',
- '182' => 'USDT/STX',
- '185' => 'USDT/ZRX',
- '188' => 'USDT/TNT',
- '191' => 'USDT/AE',
- '194' => 'USDT/VEN',
- '197' => 'USDT/BMC',
- '200' => 'USDT/MANA',
- '203' => 'USDT/PRO',
- '206' => 'USDT/KNC',
- '209' => 'USDT/SALT',
- '212' => 'USDT/IND',
- '215' => 'USDT/TRX',
- '218' => 'USDT/ENG',
- '221' => 'USDT/AST',
- '224' => 'USDT/REQ',
- '227' => 'USDT/NEU',
- '230' => 'USDT/SRN'
- }
- current = 1
- num_pairs = pairs.keys.length
- for i in pairs.keys
- begin
- puts "\nQuerying pair: #{pairs[i]} - #{current}/#{num_pairs}\n"
- current = current + 1
- output = `curl 'https://webapi.liqui.io/Market/Trades' -H 'pragma: no-cache' -H 'origin: https://liqui.io' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-US,en;q=0.9' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' -H 'content-type: application/json;charset=UTF-8' -H 'accept: application/json, text/plain, */*' -H 'cache-control: no-cache' -H 'authority: webapi.liqui.io' -H 'referer: https://liqui.io/tradeHistory' --data-binary '{"pairId":#{i},"key":"#{key}"}' --compressed`
- data = JSON.parse(output)
- if !data['Value'].empty?
- mapped_data = data['Value'].map do |d|
- symbols = pairs[i.to_s].split('/')
- action = d['Type'] == 1 ? 'Buy' : 'Sell'
- # Date Source Symbol Currency Action Price Volume Total
- {
- Date: Time.at(d['Create']).to_s,
- Source: 'Liqui',
- Symbol: symbols[1],
- Currency: symbols[0],
- Action: action,
- Price: d['Price'],
- Volume: d['Amount'],
- Total: d['Summ']
- }
- end
- json_data.push *mapped_data
- puts "\nSuccess\n"
- else
- non_traded_pairs.push(i)
- puts "\nNot Traded\n"
- end
- rescue
- failed_pairs.push(i)
- puts "\nFailed\n"
- end
- end
- puts json_data.to_json.to_s
- unless failed_pairs.empty?
- puts "\n\nFailed Pairs"
- puts failed_pairs.join(',')
- end
Add Comment
Please, Sign In to add comment