Connect to Kraken via Vezgo API

Accounts

Positions

Transactions

Support for Accounts, Positions and Transactions enabled.

Support for Positions & Balances:

  • Spot
  • Staking


Supported Transactions Types:

  • Spot: Trades, Deposits, and Withdrawals
  • Staking, Unstaking & Rewards.


Additional Notes:

  • Import up to 4000 transactions per sync operation.


Full List of Integrations

Data mapping

A field-level guide to the Vezgo API data for Kraken — what each attribute means and where to read it — so you can map it into your own system.

DataWhere to read itSource on Kraken
Account & walletsaccount.wallets[]Kraken connects with an API key + secret; a read-only key is recommended. The Spot account is one entry in account.wallets[] (wallet.name null). Once Vezgo reads Futures activity in the account's ledger, the Futures wallet is a second entry (wallet.name "Kraken Futures") — key on wallet.id. wallet.is_reconciled may be present: true when the wallet's holdings match the balances rebuilt from its transaction history.
Balances / positionsaccount.balances[]Per-asset balances on each wallet (balance.wallet). Each balance has ticker, amount, decimals and fiat_value (USD). asset_type is "crypto", "staked" for Kraken's staked (.S) balances, or "cash_equivalent" for fiat (USD, EUR, …). A staked balance is its own entry next to the spot balance of the same coin: it keeps the base ticker and carries provider_ticker with a .staked suffix (e.g. ticker ETH, provider_ticker ETH.staked). Balances under Kraken's other suffixes (e.g. .B, .F, .M, .P, .HOLD) fold into the base asset; BTC's .B balance is reported as staked. Futures wallet balances are its collateral by currency (e.g. USD, USDT), taken from Kraken's running balance on the newest Futures ledger entry. Exchange holdings are identified by ticker.
TransactionsGET /accounts/:id/transactionsSpot wallet: spot trades, deposits / withdrawals, staking / unstaking and staking rewards, moves to and from Futures, and the ledger's other entries (e.g. margin, rollover, Earn auto-allocation). Futures wallet: Futures trades, funding-rate payments and transfers with Spot. tx.wallet says which wallet an activity belongs to. A spot trade's two ledger legs are reconciled into one transaction. See "How to read a transaction" below.
Assets / securitiesbalance.tickerIdentified by ticker (e.g. BTC, ETH). Balances normalize Kraken's asset codes (e.g. XBT → BTC, XDG → DOGE). A few tickers differ between balances and transactions (e.g. ZBCN / BCN, SHXV1 / SHX, SOL / SOL03). Transactions on Kraken's suffixed sub-balances carry Kraken's own code: staking and unstaking drop the suffix (e.g. DOT28, XETH) and other activity keeps it (e.g. XETH.F). Staking rewards are the exception: they use the balance's ticker (e.g. DOT, ETH).

How to read a transaction

Each Kraken ledger activity maps to a Vezgo transaction. Read the value movement from parts[], and classify with transaction_type / transaction_subtype:

  • Value movement — parts[] (direction sent/received, ticker, provider_ticker, amount, fiat_value in USD). A spot trade reconciles its two ledger legs into one transaction with two parts. Staking and unstaking have two parts on the same ticker that differ by provider_ticker (base vs base.staked). Every other activity has one part, a staking reward and a Futures trade included. A reward's part is on the balance Kraken paid it into: provider_ticker is base.staked when that is the staked balance. Rollover entries, and some margin entries and Futures trades, carry a part with amount 0: their cost is in fees[].
  • Type — transaction_type is trade, deposit, withdrawal, staking, unstaking, reward or other. A Futures trade is a trade with one part: its realized profit or loss. staking / unstaking cover moves between spot and staked balances; a staking reward is a reward. transaction_subtype refines it: fiat_deposit / fiat_withdrawal for fiat movements; transfer_in / transfer_out for moves between Spot and Futures; staking_reward on a staking reward; income_reward on a Futures funding payment received (reward) and fees on one paid (other). other also covers the ledger's remaining entries (e.g. margin, rollover, Buy Crypto spend / receive, Earn auto-allocation), with subtype buy, sell or none — read parts[].direction and fees[] for the flow. Trades carry no subtype.
  • Fees — fees[] holds the ledger fee: ticker and amount in the fee's own asset. It is charged on top of the parts, on trades, withdrawals and every other entry: Kraken's ledger amount excludes the fee (Kraken's balance is the previous balance plus the amount, minus the fee), so deduct fees[] from the balance of its own asset. On a trade the fee is on whichever leg Kraken charged — read fees[].ticker. A staking reward's fee is in the reward's own ticker.
  • misc.origin_id is the Kraken referenceId for spot trades, staking and staking rewards (it groups a spot trade's two legs), and the ledger entry id for everything else, Futures trades included. misc.origin_type is the ledger entry's Kraken subtype when it has one (e.g. tradespot), and its Kraken type otherwise, with three labels of Vezgo's own: transaction for deposits and withdrawals, staking / unstaking for moves into and out of staking, and reward for staking rewards. Spot trades and other ledger entries also carry misc.ref_id (the referenceId) and their ledger ids in misc.sent_id / misc.received_id; staking transactions and staking rewards carry origin_id and origin_type. Futures entries and airdrops share the referenceId "Unknown", so key them on misc.origin_id. Futures activity carries misc.trade_category "futures". Kraken data comes from the ledger API: transactions are identified by Kraken's ids in misc.
  • Older rows — staking rewards imported up to October 6, 2026 keep their earlier form: transaction_type staking, with two parts on Kraken's code without its suffix, e.g. DOT28 sent and DOT28.staked received (the shape of a move into staking), and a fee whose ticker keeps Kraken's suffix (e.g. DOT28.S). In those rows the received part is the reward and the sent part is a placeholder. Moves into and out of staking carry an empty fees[], so an older staking row with a fee is a reward; a reward Kraken paid without commission has the same shape as a move.
// One Vezgo transaction = a Kraken ledger activity (a spot trade's two legs reconciled into one)
const wallet = tx.wallet;               // account.wallets[].id — the Spot wallet or the Kraken Futures wallet
const id     = tx.misc.origin_id;       // referenceId for spot trades/staking/rewards; ledger entry id otherwise
const kind   = tx.misc.origin_type;     // Kraken ledger type: tradespot, transaction, staking, reward, rollover, …

const type    = tx.transaction_type;    // trade | deposit | withdrawal | staking | unstaking | reward | other
const subtype = tx.transaction_subtype; // fiat_deposit | transfer_in | transfer_out | staking_reward | income_reward | fees | …
const parts   = tx.parts ?? [];         // spot trade / staking / unstaking = 2 legs; else 1 (staking rewards too)
const fees    = tx.fees ?? [];          // ledger fee, in the fee's own asset — charged on top: deduct it

// Futures activity carries tx.misc.trade_category === "futures".
// Futures entries share misc.ref_id "Unknown": key them on misc.origin_id.
Where to read itAttributesWhat it is
tx.parts[]direction, ticker, provider_ticker, amount, fiat_valueValue movement. Spot trades, staking and unstaking have 2 legs (staking legs share the ticker and differ by provider_ticker, base vs base.staked); other activities, staking rewards and Futures trades included, have 1.
tx.transaction_type · transaction_subtypetrade / deposit / withdrawal / staking / unstaking / reward / other · fiat_deposit, fiat_withdrawal, transfer_in, transfer_out, staking_reward, income_reward, fees, buy, sellNormalized classification — prefer these over the raw misc.origin_type. Trades carry no subtype; on other, read parts[].direction and fees[] for the flow.
tx.fees[]ticker, amountLedger / trade fee: ticker and amount in the fee's own asset, charged on top of the parts — deduct it. A staking reward's fee is in the reward's own ticker.
tx.misc.trade_category"futures"Set on Kraken Futures activity: Futures trades, funding-rate payments and transfers on the Futures wallet.

misc.origin_type is Kraken's ledger type, or its subtype when it has one (e.g. tradespot for a spot trade). Deposits and withdrawals surface as "transaction", moves into and out of staking as staking / unstaking, and staking rewards as reward. Always classify off transaction_type. Common values:

  • tradespot
  • transaction
  • staking
  • unstaking
  • reward
  • rollover
  • margin
  • derivativesfuturestrade
  • derivativesfundingratechange
  • derivativescrossexchangetransfer
  • spottofutures
  • spotfromfutures
  • transfer
  • autoallocation
  • migration
  • spend
  • receive
  • nfttrade
  • airdrop

Supported

  • Crypto and fiat balances in the Spot wallet
  • Staked balances, reported next to the spot balance of the same coin
  • Kraken Futures wallet: collateral balances, Futures trades, funding-rate payments and transfers with Spot
  • Spot trades (legs reconciled into one transaction)
  • Deposits and withdrawals (fiat and crypto)
  • Staking, unstaking and staking rewards
  • Sub-balances under Kraken's .F, .M, .P and .HOLD suffixes, folded into the base asset
  • USD fiat valuation for balances and transaction parts
See the full Vezgo object reference

Try to connect to Kraken in our Demo Sandbox

Open Demo

Let's get you started

To get your API Keys, sign up on the portal or reach out to the team at sales@vezgo.com

You have questions? Contact us