Skip to main content
GET
/
v0
/
insto
/
custody
/
vaults
/
{vault_id}
/
withdrawals
/
info
Get withdrawal info
curl --request GET \
  --url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/withdrawals/info \
  --header 'api-key: <api-key>' \
  --header 'api-nonce: <api-key>' \
  --header 'api-otp: <api-key>' \
  --header 'api-sign: <api-key>'
import requests

url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/withdrawals/info"

headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<api-key>",
"api-otp": "<api-key>"
}

response = requests.get(url, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {
'api-key': '<api-key>',
'api-sign': '<api-key>',
'api-nonce': '<api-key>',
'api-otp': '<api-key>'
}
};

fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/withdrawals/info', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

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

func main() {

url := "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/withdrawals/info"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-sign", "<api-key>")
req.Header.Add("api-nonce", "<api-key>")
req.Header.Add("api-otp", "<api-key>")

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

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

fmt.Println(string(body))

}
[
  {
    "method_id": "11111111-1111-1111-1111-111111111111",
    "type": "crypto",
    "type_name": "Crypto",
    "asset": "BTC",
    "asset_class": "currency",
    "name": "Bitcoin",
    "name_display": "Bitcoin",
    "fee_amount": "0.00010000",
    "fee_asset": "BTC",
    "fee_asset_class": "currency",
    "fee_percentage": "0.00",
    "min_amount": "0.00100000",
    "max_amount": "100.00000000",
    "sort_weight": 1,
    "validate": {},
    "validate_meta": {},
    "temp_disabled_public": false,
    "needs_activation": false,
    "beneficiary": {
      "threshold": "1000.00",
      "confirmation_required": false
    },
    "needs_deposit": false,
    "deposited": 0,
    "test": false,
    "withdrawal_network_info": {
      "network": "Bitcoin",
      "explorer": "https://www.blockchain.com/btc/tx/{tx_id}"
    },
    "rates": [
      {
        "quote_name": "USD",
        "rate": "65000.00"
      }
    ]
  }
]
{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "asset_class is required when asset is supplied"
},
"detail": "asset_class is required when asset is supplied",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Permission Denied",
"data": {
"message": "Caller lacks read access to vault VABCDEF234567A"
},
"detail": "The caller does not have access to the requested vault.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:AssetNotFound",
"status": 404,
"title": "Asset Not Found",
"data": {
"message": "Asset BTC (currency) is not available for this user."
},
"detail": "No asset found for BTC with class currency.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:gateway/ReadUpstream",
"status": 500,
"title": "Internal Server Error",
"data": "<unknown>",
"detail": "Failed to read response from upstream custody service.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}
{
"type": "tag:kraken.com,2025:gateway/Connect",
"status": 503,
"title": "Service Unavailable",
"data": "<unknown>",
"detail": "Downstream custody service is temporarily unreachable; retry with backoff.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}

Authorizations

api-key
string
header
required
api-sign
string
header
required
api-nonce
string
header
required
api-otp
string
header
required

Path Parameters

vault_id
string
required

Vault identifier, a V-prefixed 14-char base32 string with a final check character.

Example:

"VABCDEF234567A"

Query Parameters

asset
string
required

Asset code to look up withdrawal methods for (e.g. BTC, USD). Required because this endpoint resolves the funding details for a single asset; the list-methods endpoint instead treats asset as an optional filter. Must be supplied together with asset_class.

Example:

"BTC"

asset_class
string
required

Asset class for the supplied asset. Currently currency is the only supported value.

Example:

"currency"

Response

Withdrawal methods and limits available for the requested asset in the vault.

method_id
string

Funding method identifier (matches method_id on the deposit-info contract).

Example:

"11111111-1111-1111-1111-111111111111"

type
string

Withdrawal method type code.

Example:

"crypto"

type_name
string

Human-readable withdrawal method type name.

Example:

"Crypto"

asset
string

Asset code (e.g. BTC, USD).

Example:

"BTC"

asset_class
string

Asset class. Currently always currency.

Example:

"currency"

name
string

Internal funding method name.

Example:

"Bitcoin"

name_display
string

Display name shown to end users.

Example:

"Bitcoin"

fee_amount
string

Withdrawal fee amount, fixed-precision decimal as string.

Example:

"0.00010000"

fee_asset
string

Asset code the fee is charged in.

Example:

"BTC"

fee_asset_class
string

Asset class of the fee asset.

Example:

"currency"

fee_percentage
string

Percentage-based fee component, when applicable.

Example:

"0.00"

min_amount
string

Minimum withdrawal amount, fixed-precision decimal as string.

Example:

"0.00100000"

max_amount
string

Maximum withdrawal amount, fixed-precision decimal as string.

Example:

"100.00000000"

sort_weight
integer<int32>

Relative sort order for display.

Example:

1

validate
object

Address validation rules for this method, when available.

Example:
{}
validate_meta
object

Supplemental validation metadata for this method, when available.

Example:
{}
temp_disabled_public
boolean

Whether this method is temporarily disabled for public use.

Example:

false

needs_activation
boolean

Whether the method requires activation before use.

Example:

false

beneficiary
object

Beneficiary confirmation requirements for this method, when applicable.

needs_deposit
boolean

Whether a prior deposit is required before withdrawals are allowed.

Example:

false

deposited
boolean

Whether the activation deposit has already been made. Paired with needs_deposit.

Example:

0

test
boolean

Whether this method is a test-only entry.

Example:

false

withdrawal_network_info
object

Network metadata for the underlying chain, when available.

rates
object[]

Indicative exchange rates quoted against other assets.