curl --request GET \
--url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions \
--header 'api-key: <api-key>' \
--header 'api-nonce: <api-key>' \
--header 'api-sign: <api-key>'import requests
url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions"
headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<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>'}
};
fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions', 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}/transactions"
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>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"result": [
{
"id": "TXABCDE-FGHIJ-KLMNO2",
"type": "deposit",
"status": "completed",
"asset": "BTC",
"asset_class": "currency",
"amount": "1.25",
"time": "2024-05-14T22:13:20.000Z",
"transaction_hash": "0x4a7d1ed414474e4033ac29ccb8653d9b00d3f1c9a3b7e5d2c8f6a4b1e9d7c5a3",
"ref_id": "FTABCDE-FGHIJ-KLMNO2",
"fee_amount": "0.01",
"fee_asset": "BTC",
"fee_asset_class": "currency",
"extension_type": "post_trade_settlement",
"destination_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
"task": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"created_at": "2026-01-15T12:34:56Z",
"updated_at": "2026-01-15T12:35:56Z",
"expires_at": "2026-01-16T12:34:56Z",
"initiator": {
"full_name": "Alex Doe",
"role": "vault_admin",
"ip_address": "203.0.113.10",
"iiban": "ABCD EFGH IJKL MNOP"
}
}
}
],
"next_cursor": "eyJvZmZzZXQiOjI1fQ=="
}{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "Request failed validation."
},
"detail": "Request failed validation.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Forbidden",
"data": {
"message": "Caller lacks access to the requested resource."
},
"detail": "Caller lacks access to the requested resource.",
"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.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}List transactions
Returns a paginated list of transactions for the given vault. Filter by transaction type, asset, and sort order. Use cursor from a prior response to fetch subsequent pages.
Rate limit: 200 requests per 30 seconds per IP.
curl --request GET \
--url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions \
--header 'api-key: <api-key>' \
--header 'api-nonce: <api-key>' \
--header 'api-sign: <api-key>'import requests
url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions"
headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<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>'}
};
fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions', 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}/transactions"
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>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"result": [
{
"id": "TXABCDE-FGHIJ-KLMNO2",
"type": "deposit",
"status": "completed",
"asset": "BTC",
"asset_class": "currency",
"amount": "1.25",
"time": "2024-05-14T22:13:20.000Z",
"transaction_hash": "0x4a7d1ed414474e4033ac29ccb8653d9b00d3f1c9a3b7e5d2c8f6a4b1e9d7c5a3",
"ref_id": "FTABCDE-FGHIJ-KLMNO2",
"fee_amount": "0.01",
"fee_asset": "BTC",
"fee_asset_class": "currency",
"extension_type": "post_trade_settlement",
"destination_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
"task": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"created_at": "2026-01-15T12:34:56Z",
"updated_at": "2026-01-15T12:35:56Z",
"expires_at": "2026-01-16T12:34:56Z",
"initiator": {
"full_name": "Alex Doe",
"role": "vault_admin",
"ip_address": "203.0.113.10",
"iiban": "ABCD EFGH IJKL MNOP"
}
}
}
],
"next_cursor": "eyJvZmZzZXQiOjI1fQ=="
}{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "Request failed validation."
},
"detail": "Request failed validation.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Forbidden",
"data": {
"message": "Caller lacks access to the requested resource."
},
"detail": "Caller lacks access to the requested resource.",
"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.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}Authorizations
Path Parameters
Vault identifier, a V-prefixed 14-char base32 string with a final check character.
"VABCDEF234567A"
Query Parameters
Maximum number of transactions to return per page.
25
Filter by transaction type (e.g. deposit, withdrawal). OR-ed when multiple values are supplied.
Filter by asset. Each entry supplies asset and asset_class. OR-ed when multiple values are supplied.
Show child attributes
Show child attributes
Ordering as a time:direction token (direction optional, defaults to desc). Only time is supported. Defaults to time:desc.
"time:desc"
Opaque pagination cursor from a prior response's next_cursor field.
"eyJvZmZzZXQiOjI1fQ=="
Was this page helpful?