Kraken API errors follow a consistent format: a string beginning with a capital-E category prefix, followed by a colon-separated description. Every response includes anDocumentation 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.
error array — if non-empty, the request failed.
Authentication errors
EAPI:Invalid key
EAPI:Invalid key
API-Key header is missing, malformed, or refers to a key that has been deleted or revoked.Fix: Verify the key exists in your Kraken account under Settings → API. Regenerate if needed and update your client. Repeated occurrences trigger EGeneral:Temporary lockout.EAPI:Invalid signature
EAPI:Invalid signature
API-Sign header does not match the expected HMAC-SHA512 signature.Common causes:- Wrong API secret (base64-decoded correctly?)
- Nonce or POST body included in the wrong order
- Extra whitespace or encoding issue in the payload
/0/private/Balance with a minimal payload to isolate the issue.EAPI:Invalid nonce
EAPI:Invalid nonce
EGeneral:Temporary lockout
EGeneral:Temporary lockout
EAPI:Invalid key errors. The account is temporarily locked to prevent brute-force attempts.Fix: Wait for the lockout to expire (typically a few minutes). Do not retry with the same invalid key — each attempt resets the timer.EGeneral:Permission denied
EGeneral:Permission denied
EAuth:Account temporary disabled
EAuth:Account temporary disabled
EAuth:Account unconfirmed
EAuth:Account unconfirmed
EAuth:Rate limit exceeded / EAuth:Too many requests
EAuth:Rate limit exceeded / EAuth:Too many requests
Order errors
EOrder:Insufficient funds
EOrder:Insufficient funds
/0/private/Balance or BalanceEx. Account for any fees that will be deducted.EOrder:Order minimum not met
EOrder:Order minimum not met
ordermin for this pair.Fix: Query /0/public/AssetPairs and check the ordermin field. Increase the order size.EOrder:Cost minimum not met
EOrder:Cost minimum not met
costmin for this pair.Fix: Check costmin in /0/public/AssetPairs. Increase price or volume so their product exceeds the minimum.EOrder:Tick size check failed
EOrder:Tick size check failed
tick_size.Fix: Round your price to the nearest valid tick. tick_size is returned by /0/public/AssetPairs.EOrder:Invalid price
EOrder:Invalid price
EOrder:Rate limit exceeded
EOrder:Rate limit exceeded
amend instead of cancel + replace.EOrder:Orders limit exceeded
EOrder:Orders limit exceeded
EOrder:Domain rate limit exceeded
EOrder:Domain rate limit exceeded
EOrder:Scheduled orders limit exceeded
EOrder:Scheduled orders limit exceeded
EOrder:Positions limit exceeded
EOrder:Positions limit exceeded
EOrder:Reduce only — variants
EOrder:Reduce only — variants
| Error | Cause |
|---|---|
EOrder:Reduce only:Non-PC | Reduce-only flag submitted on a non-perpetual-contract pair |
EOrder:Reduce only:No position exists | Reduce-only order submitted but no open position exists for this market |
EOrder:Reduce only:Position is closed | Order would flip the position — it partially fills and the remainder is canceled |
reduce_only when you have an open position in the matching direction.EOrder:Unknown position
EOrder:Unknown position
/0/private/OpenPositions.Margin errors
EOrder:Cannot open position / EOrder:Cannot open opposing position
EOrder:Cannot open position / EOrder:Cannot open opposing position
EOrder:Margin allowance exceeded
EOrder:Margin allowance exceeded
EOrder:Margin level too low
EOrder:Margin level too low
EOrder:Margin position size exceeded
EOrder:Margin position size exceeded
EOrder:Insufficient margin
EOrder:Insufficient margin
Service errors
EService:Unavailable
EService:Unavailable
EService:Market in cancel_only mode
EService:Market in cancel_only mode
cancel_only mode — no new orders can be placed, only cancellations.Fix: Wait for the market to return to normal. Check SystemStatus endpoint or the status WebSocket channel.EService:Market in post_only mode
EService:Market in post_only mode
post_only mode — only maker orders are accepted.Fix: Submit limit orders with post_only=true, or wait for normal mode to resume.EService:Deadline elapsed
EService:Deadline elapsed
deadline parameter was set too short, or under high load.Fix: Increase your deadline or remove it. Before retrying, check OpenOrders — the order may have been placed despite the timeout.General errors
EGeneral:Invalid arguments
EGeneral:Invalid arguments
EGeneral:Invalid arguments:Index unavailable
EGeneral:Invalid arguments:Index unavailable
EGeneral:Internal error
EGeneral:Internal error
EGeneral:Internal error:5).Fix: Retry with exponential backoff. If the error persists, contact Kraken support with the full request details and timestamp.ETrade:Invalid request
ETrade:Invalid request
EAccount:Invalid permissions
EAccount:Invalid permissions
Funding errors
| Error | Cause |
|---|---|
EFunding:Max fee exceeded | Withdrawal fee exceeds the max_fee set in the Withdraw request — increase max_fee or remove it |
EBM:limit exceeded:CAL | Exceeded Canadian Acquisition Limits for this cryptocurrency |
Related guides
Authentication
API key permissions
Rate limits
Error handling patterns
| Scenario | Recommended approach |
|---|---|
EAPI:Invalid key or EAPI:Invalid signature | Do not retry — fix the authentication logic first |
EAPI:Invalid nonce | Do not retry the same nonce — generate a fresh one |
EService:Unavailable | Retry with exponential backoff (start at 1s, cap at 60s) |
EService:Deadline elapsed | Check OpenOrders before retrying — the order may have placed |
EOrder:Rate limit exceeded | Back off and reduce order frequency; check counter via TradeBalance |
EGeneral:Internal error | Retry with backoff; escalate to support if persistent |
Any EOrder:Insufficient* | Check balances before retrying; do not retry immediately |