This guide walks you through the complete setup from creating your API key to placing your first order programmatically.Documentation 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.
Create a Kraken account
If you don’t have one, sign up at kraken.com. You’ll need to complete identity verification before accessing trading APIs.
Spot trading requires a verified account. Futures trading requires additional activation — see your account settings.
Generate an API key
Go to Settings → API and click Add key.For this quickstart, enable these permissions:
- Query Funds — read balances
- Query Open Orders & Trades — read order status
- Create & Modify Orders — place orders
Verify connectivity
Check that the API is reachable and your system clock is correct. The Expected response:
Time endpoint requires no authentication:Check your balances
Your first authenticated request. The nonce must be a strictly increasing integer — using the current timestamp in milliseconds works well.
Test in a UAT environment
Both Spot and Futures provide UAT environments for validating your integration before going live.Spot UAT is available on request — contact your Account Manager. Once provisioned, it uses a separate base URL and isolated API keys but mirrors the full production trading stack.Futures sandbox is self-service at
https://demo-futures.kraken.com. Generate a separate API key on the demo platform to get started immediately.The Futures demo environment resets periodically. It is intended for integration validation, not persistent backtesting.
Next steps
API key permissions
Understand which permissions to enable for each use case
Authentication
Deep dive into nonce management and signature generation
Rate limits
Understand trading rate limits and how to stay within them
WebSocket
Switch to WebSocket for real-time order updates and market data
Error reference
Common errors and how to fix them
API comparison
Choose between REST, WebSocket, and FIX for your use case