Skip to main content
POST
/
private
/
Withdraw
Withdraw Funds
curl --request POST \
  --url https://api.kraken.com/0/private/Withdraw \
  --header 'API-Key: <api-key>' \
  --header 'API-Sign: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "nonce": 1695828271,
  "asset": "XBT",
  "key": "btc_2709",
  "amount": "0.725",
  "address": "bc1kar0ssrr7xf3vy5l6d3lydnwkre5og2zz3f5ldq"
}
'
import requests

url = "https://api.kraken.com/0/private/Withdraw"

payload = {
"nonce": 1695828271,
"asset": "XBT",
"key": "btc_2709",
"amount": "0.725",
"address": "bc1kar0ssrr7xf3vy5l6d3lydnwkre5og2zz3f5ldq"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
nonce: 1695828271,
asset: 'XBT',
key: 'btc_2709',
amount: '0.725',
address: 'bc1kar0ssrr7xf3vy5l6d3lydnwkre5og2zz3f5ldq'
})
};

fetch('https://api.kraken.com/0/private/Withdraw', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.kraken.com/0/private/Withdraw"

payload := strings.NewReader("{\n \"nonce\": 1695828271,\n \"asset\": \"XBT\",\n \"key\": \"btc_2709\",\n \"amount\": \"0.725\",\n \"address\": \"bc1kar0ssrr7xf3vy5l6d3lydnwkre5og2zz3f5ldq\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
{
  "error": [],
  "result": {
    "refid": "FTQcuak-V6Za8qrWnhzTx67yYHz8Tg"
  }
}

Authorizations

API-Key
string
header
required

The "API-Key" header should contain your API key.

API-Sign
string
header
required

Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path.

Body

application/json
nonce
integer<int64>
required

Nonce used in construction of API-Sign header

asset
string
required

Asset being withdrawn

key
string
required

Withdrawal key name, as set up on your account

amount
string
required

Amount to be withdrawn

aclass
enum<string>
default:currency

Specify the asset class of the asset being withdrawn

Available options:
currency,
tokenized_asset
address
string

Optional, crypto address that can be used to confirm address matches key (will return Invalid withdrawal address error if different)

max_fee
string

Optional, if the processed withdrawal fee is higher than max_fee, withdrawal will fail with EFunding:Max fee exceeded

rebase_multiplier
enum<string> | null
default:rebased

Optional parameter for viewing xstocks data.

  • rebased: Display in terms of underlying equity.
  • base: Display in terms of SPV tokens.
Available options:
rebased,
base

Response

200 - application/json

Withdrawal created.

result
object
error
string[]

Kraken API error