trade_with_kraken.com_api | Last modified: 1744481085 | Edit | Home


import urllib.parse
import hashlib
import hmac
import base64
import time
import requests

def sign(method, data={}):
    key = '' # your API key
    secret = '' # your API secret
    data['nonce'] = int(1000 * time.time())
    urlpath = '/0/private/' + method
    postdata = urllib.parse.urlencode(data)
    encoded = (str(data['nonce']) + postdata).encode()
    message = urlpath.encode() + hashlib.sha256(encoded).digest()
    signature = hmac.new(base64.b64decode(secret), message, hashlib.sha512)
    sigdigest = base64.b64encode(signature.digest()).decode()
    headers = {'API-Key': key, 'API-Sign': sigdigest}
    return [data, headers]


uri = 'https://api.kraken.com/0/'

# public requests

requests.get(uri + 'public/Ticker', {'pair': 'XXBTZEUR'}).json()

# private requests

data, headers = sign('Balance',{'asset': 'ZEUR'})
requests.post(uri + 'private/Balance', data, headers=headers).json()

data, headers = sign('AddOrder',{'pair': 'XXBTZEUR', 'type': 'buy', 'ordertype': 'market', 'volume': 0.001})
requests.post(uri + 'private/AddOrder', data, headers=headers).json()