When creating an API key at Settings → API, Kraken asks you to select permissions. Granting too few causesDocumentation Index
Fetch the complete documentation index at: https://kraken-sandbox.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
EGeneral:Permission denied errors. Granting too many exposes you to unnecessary risk if the key is compromised.
Permissions by use case
| Use case | Required permissions |
|---|---|
| Market data only (public endpoints) | None — public endpoints require no key |
| Read account balances | Query Funds |
| Read order history and positions | Query Open Orders & Trades, Query Closed Orders & Trades |
| Algorithmic spot trading | Query Funds, Query Open Orders & Trades, Create & Modify Orders, Cancel/Close Orders |
| Market making | Query Funds, Query Open Orders & Trades, Create & Modify Orders, Cancel/Close Orders, Get WebSocket Token |
| Funding operations (deposits/withdrawals) | Query Funds, Deposit Funds, Withdraw Funds |
| Full institutional access | All of the above |
| Read-only monitoring dashboard | Query Funds, Query Open Orders & Trades, Query Closed Orders & Trades |
| Sub-account management | Query Funds, Create & Modify Orders, Cancel/Close Orders |
Permission descriptions
| Permission | What it enables |
|---|---|
| Query Funds | Balance, BalanceEx, TradeBalance |
| Query Open Orders & Trades | OpenOrders, QueryOrders, TradesHistory, QueryTrades, OpenPositions |
| Query Closed Orders & Trades | ClosedOrders, QueryOrders, TradesHistory, QueryTrades |
| Create & Modify Orders | AddOrder, EditOrder, AmendOrder, AddOrderBatch |
| Cancel/Close Orders | CancelOrder, CancelAll, CancelAllOrdersAfter, CancelOrderBatch |
| Query Ledger Entries | Ledgers, QueryLedgers |
| Export Data | AddExport, ExportStatus, RetrieveExport, RemoveExport |
| Access WebSocket API | GetWebSocketsToken — required for authenticated WebSocket subscriptions |
| Deposit Funds | DepositMethods, DepositAddresses, DepositStatus |
| Withdraw Funds | WithdrawMethods, WithdrawAddresses, WithdrawInfo, Withdraw, WithdrawStatus, WithdrawCancel |
| Earn | Earn/Strategies, Earn/Allocations, Earn/Allocate, Earn/Deallocate |
Security best practices
Use IP whitelisting. Lock your API key to the IP addresses your trading system runs from. This single measure prevents almost all key misuse even if the key is leaked. Use separate keys per purpose. Give your market data service a read-only key. Give your order management system a trading key. Give your accounting system a ledger query key. If one is compromised, the blast radius is contained. Never embed keys in source code. Use environment variables or a secrets manager. Rotate keys periodically. Set the minimum permissions required. A key used only for placing orders does not needWithdraw Funds.
WebSocket authentication
WebSocket private channels (executions, balances, open orders) require a short-lived token rather than your API key directly. Obtain it via the REST endpoint before opening your WebSocket connection:Related guides
Authentication
HMAC-SHA512 signature generation and nonce management
Sub-accounts
Issue independent API keys per sub-account for strategy isolation
WebSocket authentication
How to use your WebSocket token in subscription messages