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. Repeatedly sending a key that doesn’t exist triggers EGeneral:Temporary lockout for every API key used from your IP address.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
- Find the client sending the invalid key. Look for
EAPI:Invalid keyresponses just before the lockout started, then remove or replace that key. - Stop retrying requests that fail with
EAPI:Invalid key. Retrying won’t succeed. - Wait about 20 minutes without sending the invalid key. The lockout then clears by itself. Requests made during the lockout don’t extend it, but sending the invalid key again after it clears starts a new one.
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