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
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: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: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