Head to head · Exchange market data · October 2026 research run
Bitget vs Kraken API
Kraken API scores 71 (BB) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Both do exchange market data.
Best crypto exchange APIs and MCP servers for AI agents · All 210 exchanges comparisons
Which one, for what
Bitget D
Best for An agent trading spot, futures and earn products in a person's Bitget account outside the prohibited list, with the smallest default MCP surface of the exchanges graded and a paper-trading switch.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
Hot and warm wallets lost about 388 million dollars on 24 September 2026 to forged withdrawal commands, and withdrawals were paused until 2 October
Kraken API BB
Best for An agent that trades spot, xStocks, forex or futures on a person's Kraken account from a local machine, with paper trading to test first and an approval gate on live orders.
Ahead on
- Reliability, 67 against 40
- Schema & documentation, 80 against 74
- Security & auth, 80 against 62
Also in its favour
- Agent-ready, a grade of BB or better
- Free to start without a card
- No incidents deducted, where Bitget loses 8 points for them
Watch for
No self-service spot sandbox; the spot UAT environment is on request through an account manager, and paper trading lives in the CLI
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Reliability Kraken API +27
Bitget 40
Graded with the hosted lines on the UTA v3 API at api.bitget.com. No status page found (status.bitget.com does not resolve, the docs link none), so 0 for the page and 5 for no readable history; the September 2026 breach is in the deduction, not here. Rate limits are published as 6,000 per IP per minute and per-endpoint UID limits by VIP level (15). An x-mbx-used-remain-limit header is documented and the agent SDK backs off on 429, orders take a clientOid of up to 64 characters, but the breach error code and a Retry-After rule were not read (10 of 15). No SLA (0). UTA v3 is the production API (10). 40.
Kraken API 67
Read with the hosted lines on the spot API. status.kraken.com is a Statuspage site with REST, WebSocket and FIX components (20). The incidents feed read covers 4 September to 3 November 2026. On 30 October spot and derivatives clients could not connect or submit orders across web, mobile, REST, WebSocket and FIX for 59 minutes 39 seconds, rated minor by Kraken; on 28 October some FIX clients were rejected on reconnection for 1 hour 59 minutes while other interfaces worked; the futures engine was degraded for 3 minutes on 13 October. A whole-exchange order outage 21 seconds short of an hour is read as one major (10 of 30). Numeric limits per key by tier and per pair for the matching engine (15). EAPI:Rate limit exceeded and EService:Throttled with a retry timestamp, a client order id and a validate flag on orders, but no Retry-After header (12 of 15). No SLA (0). Generally available (10). 20 + 10 + 15 + 12 + 0 + 10 = 67.
Security & auth Kraken API +18
Bitget 62
API keys with read or read-and-write permission, a passphrase, HMAC-SHA256 or RSA signing, IP binding recommended, 50 keys per UID, revocation on the management page; no OAuth and no separate withdrawal scope in the docs read (22 of 30). --read-only strips write tools at start, --paper-trading routes to demo, and high-risk writes need confirm: true (18 of 20). Tools return the exchange's own data (10). Request and response hooks are forwarded as MCP log notifications; no per-call audit log on Bitget's side was found (6 of 15). security@bitget.com in the toolkit README, no security.txt, Mandiant and SlowMist reports on the September breach, a proof-of-reserves repository, no bounty page read (6 of 20). 62.
Kraken API 80
Keys with nine named permissions, optional expiry, IP restriction and nonce window, plus an OAuth sign-in from the CLI (authorisation code with PKCE, public client) that mints a no-withdrawal key expiring within 90 days or a read-only key (30). Read-only and no-withdrawal keys, position limits and pair allowlists in account settings, and MCP approval prompts for 33 dangerous tools (18 of 20). The API returns no untrusted content; the CLI docs warn that the feedback tool uploads a local file without approval (10). Keys and their permissions are listed in settings and ledgers record activity, but no per-call log for the operator was found (6 of 15). A valid security.txt, a bug bounty policy page, SECURITY.md and a secure SDLC workflow in the CLI; certifications not read (16 of 20). 30 + 18 + 10 + 6 + 16 = 80.
Schema & documentation Kraken API +6
Bitget 74
The agent SDK ships openapi.yaml with 109 typed UTA v3 operations from which the tools are generated, a machine-readable contract from the vendor's own organisation though not on the docs site (20 of 25). llms.txt in the SDK and MCP repositories; the docs site has none (6 of 10). Intent tools with a discover tool that explains each verb, action and its risk level, and the server's initialize instructions state surface, modules and read-only posture (15 of 20). Typed inputs with enums and required fields from the OpenAPI source (12 of 15). Examples in the quick start and READMEs, a REST error code page in the legacy docs that we did not read in full (9 of 15). Changelog by day with preview notices and effective dates (12 of 15). 74.
Kraken API 80
No OpenAPI file was found for the REST API in the docs read; the CLI's agents/tool-catalog.json gives JSON Schema inputs for all 188 commands and the 152 MCP tools (15 of 25). The docs serve Markdown twins such as quickstart.md and the CLI ships llms.txt, AGENTS.md and CONTEXT.md (10). Endpoint pages and guides on order lifecycle, errors and rate limits say what each call does, with less on when not to use one (15 of 20). Enums for order types, time in force and flags, and enums and required fields in the tool catalogue (12 of 15). Python, Node.js and cURL examples, an errors guide and the CLI's error-catalog.json with retry guidance (13 of 15). A changelog of 120 dated entries with deprecations dated (15). 15 + 10 + 15 + 12 + 13 + 15 = 80.
Score by category
| Category | Weight this run | Bitget | Kraken API | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 40 | 67 | Kraken API +27 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 74 | 80 | Kraken API +6 |
| Agent ergonomics | 13%16.2 | 83 | 79 | Bitget +4 |
| Security & auth | 14%17.5 | 62 | 80 | Kraken API +18 |
| Payments & pricing | 10%12.5 | 40 | 40 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 78 | 81 | Kraken API +3 |
| Transparency & trust | 7%8.8 | 65 | 65 | even |
| Negative events | ≤15 | -8 | 0 | |
| Total | D 53.9/100 | BB 71/100 |
Facts side by side
| Fact | Bitget | Kraken API |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | BTG Technology Holdings Limited | Payward, Inc. |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | stdio | stdio |
| Auth | API key | OAuth or key |
| Pricing | Pay per use | Pay per use |
| x402 | no | no |
| Licence | none | Proprietary hosted service under Kraken's Global Terms of Service (30 October 2026). kraken-cli, which carries the kraken-mcp server, is MIT |
| Tools exposed | 14 | 152 |
| Read-only variant documented | yes | yes |
| llms.txt | no | yes |
| MCP registry | io.github.Bitget-AI/bitget-agent-mcp | not listed |
| Last release | 2026-10-30 | 2026-10-29 |
| Terms last updated | 2026-10-20 | 2026-10-30 |
| Privacy policy last updated | 2025-12-05 | 2026-10-21 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | not found in the text | yes |
| Terms or service can change without notice | yes | yes |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 234 stars | 795 stars |
Verdicts
Bitget
Bitget's official MCP server keeps the default surface to 14 intent tools with discovery, read-only and paper-trading switches, dry runs and a confirmation gate on withdrawals, over an API with demo trading. A 388 million dollar wallet breach in September 2026 paused withdrawals for eight days, and there is no status page, SLA or readable fee table.
Kraken API
Kraken pairs a documented REST, WebSocket and FIX API with the open-source kraken-cli, whose kraken-mcp server gates 33 dangerous tools behind approval and signs in by OAuth with a no-withdrawal key. Spot has no self-service sandbox, no OpenAPI file was found, and a 59-minute connectivity outage hit every interface on 30 October 2026.
Before you call either
Bitget
- Run
npx -y @bitget-ai/bitget-agent-mcp --read-onlyfor research and--paper-tradingwith a demo key before any live order; the two flags cannot be combined - Call discover({}) first, then the intent verbs; add
dryRun: trueto any write to preview it, and passconfirm: trueonly after the person has agreed to a withdraw or cancelAll - Send a unique clientOid of at most 64 characters on every order and reuse it on retry; orderId wins when both are sent
- Stay under 10 requests a second per endpoint on a new account and 6,000 a minute per IP; the SDK retries on 429, so do not add a second retry loop
- Bind the key to an IP and keep write permission off a research key; the docs read show no separate withdrawal scope
Kraken API
- Start kraken-mcp with -s market,paper,feedback or the default services; add trade only with a least-privilege key, and never pass --allow-dangerous on an agent that reads untrusted input
- Ask the person to run kraken auth login in their own terminal; it needs a browser and saves a no-withdrawal key that expires in 90 days at most
- Send a fresh --cl-ord-id on each order and run it with --validate first; after a network error look the order up before sending it again
- Keep the nonce strictly increasing per key and stay under the tier's counter, since EAPI:Rate limit exceeded has no Retry-After header
- Test strategies in a paper workspace, which fills at live prices with no account, before a live workspace
Questions
Which is better for AI agents, Bitget or Kraken API?
Kraken API scores 71 (BB) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories.
Do Bitget and Kraken API need an API key?
Bitget needs an API key. Kraken API takes an API key or an OAuth sign-in.
Can an agent call Bitget and Kraken API without installing anything?
Bitget runs on your own machine, with no hosted endpoint listed. Kraken API runs on your own machine, with no hosted endpoint listed.
Other comparisons with Bitget or Kraken API
- Bitfinex API vs Bitget
- Bitfinex API vs Kraken API
- Bitget vs Bithumb Open API
- Bitget vs Bitstamp API
- Bitget vs Bybit
- Bitget vs Coinbase Advanced Trade API
- Bitget vs Coinbase MCP server (Coinbase for Agents)
- Bitget vs Crypto.com Exchange API
- Bitget vs Deribit
- Bitget vs dYdX
- Bitget vs Gate
- Bitget vs Gemini Exchange API
- Bitget vs HTX trading API
- Bitget vs Hyperliquid
- Bitget vs KuCoin
- Bitget vs MEXC API
- Bitget vs OKX API
- Bitget vs Uniswap Trading API
- Bitget vs Upbit Open API
- Bithumb Open API vs Kraken API
- Bitstamp API vs Kraken API
- Bybit vs Kraken API
- Crypto.com Exchange API vs Kraken API
- Gate vs Kraken API
- Gemini Exchange API vs Kraken API
- HTX trading API vs Kraken API
- Binance API vs Bitget
- Binance API vs Kraken API
- Coinbase Advanced Trade API vs Kraken API
- Coinbase MCP server (Coinbase for Agents) vs Kraken API
- Kraken API vs KuCoin
- Kraken API vs MEXC API
- Kraken API vs OKX API
- Kraken API vs Uniswap Trading API
- Kraken API vs Upbit Open API
- Deribit vs Kraken API
- dYdX vs Kraken API
- Hyperliquid vs Kraken API
Machine-readable
- This page as Markdown
/compare/bitget-vs-kraken.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/bitget.json·/api/v1/tools/kraken.json - From a terminal
anchor compare bitget kraken(the CLI) - Over MCP
compare_tools {"a": "bitget", "b": "kraken"}at/mcp, no key