Kraken API Key Permissions for a Trading Bot in 2026: Which Toggles to Turn On, Which to Leave Off, and Why

A Kraken API key for a trading bot needs six permissions and must not have five others. Turn on Query Funds, Query Open Orders & Trades, Query Closed Orders & Trades, Modify Orders, Cancel/Close Orders and Query Ledger Entries. Leave off Withdraw Funds, Deposit Funds, Export Data, Access WebSockets API and anything under Earn. Set an IP whitelist if the software publishes its addresses, leave key-level two-factor off (it breaks automation by design), and give the key an expiration date you will remember. That is the whole answer; the rest of this page says what each toggle actually permits, which ones JorgAI uses and why, what the error codes mean when a toggle is wrong, and how to rotate a key without a gap.
The labels below are quoted from Kraken's API key article and REST authentication guide as of October 27, 2026, and the endpoint mapping comes from building and running JorgAI's Kraken connection. Kraken moves things around occasionally; if a label on your screen differs, the permission's purpose is what to match. The connection walkthrough itself is in the Kraken guide.
The six permissions a bot needs
- Query Funds. Lets the key read balances (Kraken's Balance and TradeBalance calls). JorgAI reads this before every buy to size the order and after every fill to reconcile. Without it the connection fails on the very first step, which is the right place to fail.
- Query Open Orders & Trades. Lets the key see resting orders and look an order up by id (OpenOrders, QueryOrders). JorgAI uses it to confirm a fill and to avoid placing a duplicate while an order is still working.
- Query Closed Orders & Trades. Lets the key read filled and cancelled orders and the trade history (TradesHistory). JorgAI uses it to record the real fill price and fee on every trade and to import positions you opened yourself.
- Modify Orders. The permission that places orders (AddOrder, EditOrder). This is the one that makes the key a trading key; without it the software can watch but not act.
- Cancel/Close Orders. Lets the key cancel (CancelOrder, CancelAll). JorgAI needs it to pull a stale limit order and to manage exits; a key that can place but not cancel is a worse risk than one that can do both.
- Query Ledger Entries. Reads the account ledger (Ledgers). JorgAI uses it to keep the cash and fee history honest; the dashboard's realized numbers come from here rather than from our own arithmetic.
The five to leave off, and what each would allow
- Withdraw Funds. Moves coins out of the account to an address. No trading platform needs it, and it is the single permission that turns a leaked key into a theft. Leave it off on every key you ever make for software.
- Deposit Funds. Generates deposit addresses. Harmless on its own but useless to a bot, and a key with fewer permissions is a smaller problem if it leaks.
- Export Data. Creates and downloads account reports. A bot reads what it needs through the query permissions; exports are a human feature.
- Access WebSockets API. Issues the token for Kraken's private WebSocket feed. JorgAI uses the REST API with a short cache instead, so the key does not need it. A platform that streams would ask for it explicitly.
- Earn (any of them). Allocates or redeems funds in Kraken's staking and earn products. Not part of trading automation.
The four options on the form
- Nonce window. Every private request carries a nonce, an always-increasing number, and Kraken rejects a request whose nonce is lower than the last one it saw (EAPI:Invalid nonce). The window lets requests arrive slightly out of order without an error. JorgAI uses microsecond nonces and retries once on a nonce error, so the default window works; if you reuse the same key in a second program, which you should not, widen it or expect nonce errors.
- IP whitelisting. Restricts the key to requests from listed addresses. Use it whenever the platform publishes its addresses; a leaked key is then useless from anywhere else. Kraken's form takes the list at creation.
- Key expiration. Sets a date after which the key stops working. A one-year expiration is a free rotation reminder; put the date in your calendar, because the platform will show a disconnect banner on the day, not before.
- Query start/end date and time. Limits how far back the history permissions can read. Fine to leave open for a bot that imports your existing positions; narrow it if you only want the key to see activity from the day you connect.
One more setting lives on Kraken's Security page rather than the key form: two-factor authentication for API keys. With it on, every private call must carry a one-time code, which no automated platform can supply. Leave it off for a trading key and keep two-factor on your login instead, which Kraken requires before it issues API keys at all.
What the error codes mean
Kraken returns errors in the response body with an HTTP 200, so a bot has to read them. The ones a wrong key produces:
- EAPI:Invalid key. The key does not exist, was deleted, or has expired. Create a new one.
- EAPI:Invalid signature. The private key (the second string) was pasted wrong, usually a missing character. Re-paste the secret.
- EGeneral:Permission denied. The key exists but lacks the permission for that call: a missing Modify Orders shows up here on the first buy, a missing Query Ledger Entries on the first ledger read. Edit the key's permissions or make a new key.
- EAPI:Invalid nonce. A request arrived with a nonce lower than the last; transient when one program uses the key, chronic when two do. Widen the window or stop sharing the key.
- EAPI:Rate limit exceeded. Too many calls; Kraken's counter is 15 at the starter tier, with history calls costing two. JorgAI caches balance reads for 15 seconds and history for 60, after the first member's three-coin account tripped this sixty times in an hour. The rate-limit comparison has the tiers.
JorgAI treats Invalid key, Invalid signature and Permission denied as connection failures (banner and reconnect prompt) and Invalid nonce as a retry, so a wrong toggle is visible within one scan rather than silently skipping trades.
Rotating a key without a gap
Create the new key with the same six permissions first, paste it into the platform (JorgAI: Settings, Broker, reconnect Kraken), confirm the connection reads a balance, and only then delete the old key on Kraken. Deleting first leaves open positions without their stops for however long the swap takes. Do the same on a schedule: a key's expiration date is the easiest schedule there is.
The wider picture, what a trading-only key can and cannot do if it leaks, applies to every exchange; the Kraken vs Crypto.com head-to-head compares the two key models, and the Kraken bot list and the 3Commas comparison cover the other platforms you might hand a key to. Connecting Kraken to JorgAI takes about ten minutes from the start page.
Quick answers
What permissions does a Kraken API key need for a trading bot? Query Funds, Query Open Orders & Trades, Query Closed Orders & Trades, Modify Orders, Cancel/Close Orders and Query Ledger Entries. Not Withdraw Funds, Deposit Funds, Export Data, WebSockets or Earn.
Can a Kraken API key withdraw my funds? Only if Withdraw Funds is turned on. No trading platform needs it; leave it off and a leaked key can trade but cannot move coins out.
Why does my bot get EGeneral:Permission denied on Kraken? The key is missing the permission for that call, most often Modify Orders for placing orders or Query Ledger Entries for history. Edit the key or create a new one with the full six.
Should I enable 2FA on a Kraken API key? Not for a key used by software: key-level 2FA requires a one-time code on every call. Keep 2FA on your Kraken login, use an IP whitelist and an expiration date on the key instead.
Data: permission names, options and error codes from Kraken's support article "How to create an API key" and the Spot REST authentication guide, read October 27, 2026; endpoint usage from JorgAI's Kraken integration. Kraken can rename or regroup settings; match the purpose if a label differs. Nothing here is a recommendation to use any exchange.
Keep reading

Trading Strategy / Oct 27, 2026
Is the Stock Market Open on Veterans Day 2026? Yes, and Here Is What the S&P 500 Did on Every Veterans Day Since 1993

Trading Strategy / Oct 27, 2026
Apple Earnings November 2, 2026: What AAPL Did the Day After Every Report Since 2009, and Why October Reports Are Different
Let the AI do the trading.
Set it up in minutes. 7 day free trial on Starter and Pro.
Get started free