{
  "data": {
    "a": {
      "slug": "bitget",
      "name": "Bitget",
      "vendor": "BTG Technology Holdings Limited",
      "vendorUrl": "https://www.bitget.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Bitget is a centralised crypto exchange for spot, margin, futures, earn and tokenised stocks, reached through its Unified Trading Account v3 REST and WebSocket API and an Agent Hub toolkit with a stdio MCP server, CLI and agent skills.",
      "url": "https://www.anchorterminal.com/tools/bitget",
      "markdownUrl": "https://www.anchorterminal.com/tools/bitget.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bitget.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bitget.json",
      "dns": "bitget.grade.anchorterminal.com",
      "repo": "https://github.com/Bitget-AI/agent-mcp",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@bitget-ai/bitget-agent-mcp"
        },
        {
          "registry": "npm",
          "name": "bitget-mcp-server"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key, system-generated secret and user-set passphrase minted under API Key Management after a browser sign-up and identity verification, up to 50 keys per UID, each with read or read-and-write permission, signed per request with HMAC-SHA256 or RSA over timestamp, method, path and body in the ACCESS-KEY, ACCESS-SIGN, ACCESS-TIMESTAMP and ACCESS-PASSPHRASE headers. Binding an IP is recommended, not required. Sub-account keys carry trade or management permission, read-only or read-write, once the main account enables key management for them. Demo keys are minted in demo mode and sent with the paptrading header set to 1 (https://www.bitget.com/legacy-docs/uta/guide, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API and the Agent Hub packages cost nothing; trades carry Bitget's fees. Base rates are 0.1 per cent maker and taker on spot and 0.02 per cent maker and 0.06 per cent taker on futures before VIP tiers or the BGB discount, which applies to spot only at a rate the article says to read on the live schedule. The fee page draws its table by script (https://www.bitget.com/support/articles/12560603892734, 20 August 2026, checked 2026-11-03).",
      "priceSummary": "0.1% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the UTA docs, the Agent Hub READMEs, the SDK's openapi.yaml or the fee article (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 14,
      "popularity": {
        "githubStars": 234,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.bitget.com/api-doc/uta/intro",
      "registryName": "io.github.Bitget-AI/bitget-agent-mcp",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "usage-priced",
        "sandbox",
        "no-status-page",
        "mcp",
        "mcp-registry",
        "official",
        "read-only-mode",
        "agent-skills",
        "cli",
        "python",
        "typescript",
        "go",
        "java",
        "php"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.9,
        "grade": "D",
        "agentReady": false,
        "rank": 824,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 78,
          "payments": 40,
          "reliability": 40,
          "schema": 74,
          "security": 62,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": -8,
        "negativeNotes": [
          "Security incident of 24 September 2026. An attacker who had obtained high-level internal credentials through a vulnerability in a third-party security product injected forged withdrawal commands into Bitget's wallet back end and moved about 388 million dollars in 13 assets on 11 chains from hot and warm wallets. Withdrawals, fiat and C2C were paused from 24 September and restored in phases from 28 September to 2 October 2026; trading, deposits and the API kept running. Bitget says user balances were unaffected, the Protection Fund covered the loss and was topped above 300 million dollars, private keys and cold wallets were untouched, and Mandiant and SlowMist reports of 30 September agree with its account. A fixed, documented incident with a public root cause, so below the top of the range. Sources https://www.bitget.com/academy/12560603896113 (updated 20 October 2026) and https://www.bitget.com/support/articles/12560603896110 (26 September 2026), read 2026-11-03."
        ],
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Official stdio MCP server with 14 intent tools by default, progressive discovery, `--read-only`, `--paper-trading`, `dryRun: true` on writes and `confirm: true` required for withdrawals and cancel-all",
          "Demo trading on the production host with demo keys and a paptrading header, and a TypeScript agent SDK whose openapi.yaml types all 109 UTA v3 operations",
          "Terms name BTG Technology Holdings Limited with Hong Kong law, and the privacy notice gives retention periods of 7 and up to 10 years",
          "Changelog with 58 dated entries since 5 August 2026, including preview notices with demo and live dates for WebSocket changes",
          "Base fees public in a help article, 0.1 per cent spot and 0.02 per cent maker and 0.06 per cent taker on futures"
        ],
        "weaknesses": [
          "Hot and warm wallets lost about 388 million dollars on 24 September 2026 to forged withdrawal commands, and withdrawals were paused until 2 October",
          "No status page, incident history or SLA; the terms disclaim uninterrupted access",
          "Two official MCP servers coexist, the V2-based bitget-mcp-server on Bitget's own Agent Hub page and the v3 bitget-agent-mcp on GitHub and npm, with different tool counts",
          "The current api-doc site renders every page as the UTA overview for a reader without script; the legacy docs were used instead",
          "Keys have read or read-and-write only, with no separate withdrawal permission in the docs read, and IP binding is recommended rather than required"
        ],
        "agentNotes": [
          "Run `npx -y @bitget-ai/bitget-agent-mcp --read-only` for research and `--paper-trading` with a demo key before any live order; the two flags cannot be combined",
          "Call discover({}) first, then the intent verbs; add `dryRun: true` to any write to preview it, and pass `confirm: true` only 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"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.9
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 78,
          "payments": 40,
          "reliability": 40,
          "schema": 74,
          "security": 62,
          "transparency": 53
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y @bitget-ai/bitget-agent-mcp",
        "http": "curl https://api.bitget.com/api/v3/market/tickers?category=SPOT\u0026symbol=BTCUSDT",
        "claudeCode": "claude mcp add bitget -- npx -y @bitget-ai/bitget-agent-mcp --read-only",
        "config": {
          "mcpServers": {
            "bitget": {
              "args": [
                "-y",
                "@bitget-ai/bitget-agent-mcp",
                "--read-only"
              ],
              "command": "npx",
              "env": {
                "BITGET_API_KEY": "YOUR_API_KEY",
                "BITGET_PASSPHRASE": "YOUR_PASSPHRASE",
                "BITGET_SECRET_KEY": "YOUR_SECRET_KEY"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/bitget"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Spot trade, base maker or taker",
          "unit": "pct",
          "usd": 0.1,
          "note": "before VIP tiers and the BGB discount"
        },
        {
          "item": "Futures trade, base taker",
          "unit": "pct",
          "usd": 0.06,
          "note": "maker 0.02 per cent"
        }
      ],
      "provenance": {
        "legalEntity": "BTG Technology Holdings Limited",
        "domain": "bitget.com",
        "domainRegistered": "2003-02-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.bitget.com/support/articles/360014944032-terms-of-use",
        "privacy": "https://www.bitget.com/support/articles/360015150651",
        "statusPage": "",
        "changelog": "https://www.bitget.com/legacy-docs/uta/changelog",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Terms of Use last updated 20 October 2026 name BTG Technology Holdings Limited under Hong Kong law with HKIAC arbitration; the privacy notice (5 December 2025) names the same company as controller under the Seychelles Data Protection Act 2023 with BTGT Europe Limited, UAB as EEA representative. /user-agreement and /privacy-policy answer 404; the documents live in the support centre.",
          "www.bitget.com/robots.txt disallows internal, search, calendar, wiki and register paths; the api-doc, legacy-docs, support, academy, blog and activity-hub paths are allowed.",
          "RDAP gives bitget.com a registration date of 3 February 2003 (MarkMonitor), earlier than the exchange, so the domain was bought.",
          "https://www.bitget.com/.well-known/security.txt answers 404; the Agent Hub README gives security@bitget.com for reports. No status page found; status.bitget.com does not resolve and the docs link none.",
          "The current api-doc site answers every path with the UTA overview for a reader without script; the legacy docs at /legacy-docs/uta/ were read for the guide, rate limits and changelog."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bitget.json",
      "live": {
        "slug": "bitget",
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.Bitget-AI/bitget-agent-mcp",
            "version": "3.0.2",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          },
          {
            "registry": "npm",
            "name": "@bitget-ai/bitget-agent-mcp",
            "version": "3.3.1",
            "seenAt": "2026-11-04T20:02:49.846993208Z"
          },
          {
            "registry": "npm",
            "name": "bitget-mcp-server",
            "version": "1.1.0",
            "seenAt": "2026-11-04T20:02:50.714916236Z"
          }
        ],
        "githubStars": 1,
        "npmWeekly": 255,
        "securityTxt": {
          "url": "https://bitget.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:53.864777414Z"
        },
        "updatedAt": "2026-11-04T20:02:53.43909091Z"
      }
    },
    "answer": "Bitget and KuCoin score within a point of each other on agent readiness, 53.9 (D) and 53.9 (D). KuCoin leads on reliability.",
    "b": {
      "slug": "kucoin",
      "name": "KuCoin",
      "vendor": "KuCoin",
      "vendorUrl": "https://www.kucoin.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "KuCoin is a centralised crypto exchange for spot, margin and futures trading and earn products, reached through its REST and WebSocket API with a unified trading account, an official multi-language SDK and read-only agent skills. It runs no MCP server.",
      "url": "https://www.anchorterminal.com/tools/kucoin",
      "markdownUrl": "https://www.anchorterminal.com/tools/kucoin.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kucoin.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kucoin.json",
      "dns": "kucoin.grade.anchorterminal.com",
      "repo": "https://github.com/Kucoin/kucoin-universal-sdk",
      "transports": [],
      "packages": [],
      "auth": "api-key",
      "authNotes": "API key, secret and user-set passphrase minted under API Management after a browser sign-up and identity verification, with KC-API-KEY, KC-API-SIGN (HMAC-SHA256 over timestamp, method, path and body, Base64), KC-API-TIMESTAMP, KC-API-PASSPHRASE (the passphrase signed with the secret) and KC-API-KEY-VERSION headers. Permissions are General (read-only), Spot, Margin, Futures, Earn, Withdrawal, FlexTransfers, LeadtradeFutures and Unified; Withdrawal and FlexTransfers need an IP allow-list, and a key with trading permissions and no IP bound has trading disabled or is deleted after 30 days of inactivity. General-only keys do not expire (https://www.kucoin.com/docs-new/authentication, https://www.kucoin.com/docs-new/ and https://www.kucoin.com/support/360015102174, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API costs nothing; trades carry KuCoin's fees. Spot fee levels are set against a base of 0.1 per cent maker and 0.1 per cent taker at LV0, with some pairs priced differently and a 20 per cent discount when fees are paid in KCS. The futures LV0 rate (0.02 per cent maker and 0.06 per cent taker per a KuCoin blog post) sits in an image on the support page and was not read first-hand. The fee page itself loads its table by script (https://www.kucoin.com/support/360015188494 and https://www.kucoin.com/en-eu/support/360015207133, checked 2026-11-03).",
      "priceSummary": "0.1% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the skills hub or the fee pages (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 55,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.kucoin.com/docs-new/",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "usage-priced",
        "no-status-page",
        "agent-skills",
        "python",
        "typescript",
        "go",
        "java",
        "php"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.9,
        "grade": "D",
        "agentReady": false,
        "rank": 825,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 73,
          "payments": 35,
          "reliability": 45,
          "schema": 60,
          "security": 55,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "KuCoin publishes pooled rate limits with remaining and reset headers, scoped keys where withdrawals and transfers need an IP allow-list, an official SDK in five languages and read-only agent skills. It runs no MCP server, has no sandbox, status page or OpenAPI file, and its terms name no legal entity.",
        "bestFor": "An agent trading spot, margin and futures in a person's KuCoin account outside the restricted list, with no sandbox and no MCP server, so through the SDK or raw REST.",
        "strengths": [
          "Rate limits published per VIP level with per-endpoint weights and gw-ratelimit-limit, gw-ratelimit-remaining and gw-ratelimit-reset headers, 429000 on breach",
          "API key permissions split into General, Spot, Margin, Futures, Earn, Withdrawal, FlexTransfers and Unified, with Withdrawal and FlexTransfers requiring an IP allow-list",
          "Official kucoin-universal-sdk for Go, Python, Node.js, PHP and Java, MIT, pushed September 2026",
          "Unified Trading Account API V2 with a dated changelog and unified six-digit error codes",
          "Seven read-only agent skills in a KuCoin-published repository, installable with the skills CLI"
        ],
        "weaknesses": [
          "No official MCP server; the registry's `kucoin` entry is a third party's keyless market-data package",
          "No sandbox or testnet; the legacy sandbox is offline and the docs point to mocking",
          "No status page, incident history or SLA found",
          "No OpenAPI file or llms.txt; the SDK page links a Postman workspace instead",
          "Terms name no company and fix the Turks and Caicos Islands as the deemed place of every transaction; the privacy policy names only KuCoin"
        ],
        "agentNotes": [
          "Mint a key with General only for research; add Spot or Futures only with an IP allow-list, since unbound trading keys are disabled after 30 days of inactivity",
          "Send a UUID clientOid on every order and keep it for the retry, and read the order back by clientOid before placing again",
          "Budget requests by weight against gw-ratelimit-remaining and sleep for gw-ratelimit-reset milliseconds on 429000; sub-accounts share the pool",
          "There is no sandbox, so rehearse with the smallest order size on a dedicated sub-account",
          "Use the UTA V2 endpoints and hosts; the Classic API loses endpoints without notice, as the margin credit endpoints did on 21 October 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53.9
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 73,
          "payments": 35,
          "reliability": 45,
          "schema": 60,
          "security": 55,
          "transparency": 52
        },
        "provenanceScore": 55,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT"
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/kucoin"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Spot trade, LV0 maker or taker",
          "unit": "pct",
          "usd": 0.1,
          "note": "base rate; some pairs differ, 20 per cent off in KCS"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "kucoin.com",
        "domainRegistered": "2013-11-13",
        "endpointOnVendorDomain": true,
        "terms": "https://www.kucoin.com/support/47185419968079",
        "privacy": "https://www.kucoin.com/legal/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.kucoin.com/docs-new/change-log",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The terms (last updated 29 October 2026) name no company; they deem all activity to occur in the Turks and Caicos Islands under its law with SIAC arbitration. /legal/terms-of-use is a shell page that links the support article recorded here. The privacy policy (dated 10/05/2026 in an ambiguous format) names KuCoin as controller with no company name.",
          "www.kucoin.com/robots.txt disallows assets, order and account paths only; docs-new and support pages are allowed.",
          "RDAP gives kucoin.com a registration date of 13 November 2013 (Amazon Registrar).",
          "https://www.kucoin.com/.well-known/security.txt answers 404. No status page found; status.kucoin.com does not resolve and the docs link none.",
          "The docs changelog is dated by day; its newest entry is dated 6 November 2026, three days ahead of the check, and the newest past entry 2 November 2026."
        ],
        "score": 55
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kucoin.json",
      "live": {
        "slug": "kucoin",
        "versions": [
          {
            "registry": "github",
            "name": "Kucoin/kucoin-universal-sdk",
            "version": "v1.3.1",
            "released": "2026-05-29",
            "seenAt": "2026-11-04T20:29:03.487838607Z"
          }
        ],
        "githubStars": 55,
        "securityTxt": {
          "url": "https://kucoin.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:04.738329571Z"
        },
        "updatedAt": "2026-11-04T20:29:03.487838607Z"
      }
    },
    "edges": [
      {
        "by": 21,
        "category": "ergonomics",
        "leads": "bitget",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Read for the API with the MCP server as the agent route. 14 compact tools by default, module filters, a full surface on request and progressive discovery (25). Cursor pagination on CFD order history since 15 October 2026 and limit parameters on lists (15 of 20). Uniform ok or error result shape from the SDK with typed error classes and compact JSON in the text channel (13 of 20). clientOid on orders, `dryRun: true` on every write, `confirm: true` gating cancelAll and withdraw, annotations derived from risk level including readOnlyHint, destructiveHint and idempotentHint (18 of 20). Few required fields, official SDKs in five languages plus the TypeScript agent SDK and a CLI (12 of 15). 83.",
          "b": "Read for the API alone, since there is no MCP server. Responses take limit and cursor parameters on list endpoints and the order book depth is a parameter (14 of 25). Pagination and symbol filters on orders, fills and ledgers (15 of 20). Codes and messages per response, with the V2 scheme claimed to be clearer; the rate-limit page's own examples contradict its table, which costs an agent a turn (12 of 20). clientOid on orders makes retries safe; no MCP annotations to read (10 of 20). Three required fields on a spot order, official SDKs in five languages (11 of 15). 62."
        },
        "scores": {
          "a": 83,
          "b": 62
        }
      },
      {
        "by": 14,
        "category": "schema",
        "leads": "bitget",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI or other machine-readable contract was found; the docs link a Postman workspace and the universal SDK is generated from an internal spec (8 of 25). No llms.txt; the skills hub ships Markdown SKILL.md files with endpoint tables for seven product areas, read-only (6 of 10). One docs page per endpoint with a description, permission and weight, but no when-to-use guidance (12 of 20). Typed parameter tables with enums for type and side and required flags (11 of 15). Request and response examples per endpoint and a unified six-digit error code scheme introduced with V2 (10 of 15). Dated changelog with V1 to V2 versioning (13 of 15). 60."
        },
        "scores": {
          "a": 74,
          "b": 60
        }
      },
      {
        "by": 11,
        "category": "transparency",
        "leads": "bitget",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The editorial half. A closed hosted service with clear terms naming BTG Technology Holdings Limited; the toolkit is MIT (15 of 30). The privacy notice names the controller and EEA representative, gives 7-year and up to 10-year retention for compliance and litigation, and names recipients by category only (18 of 30). Deprecations and parameter changes carry effective dates (delta mode deprecated 27 August, symbol and category required from 30 September, snapshot changes with demo and live dates) but no written policy (15 of 20). Recipients by category, transfers under Seychelles law with no locations or provider names (5 of 20). 53.",
          "b": "The editorial half. A closed hosted service with terms that are clear on use, liability and law but name no company (12 of 30). The privacy policy gives retention periods by purpose and provider (2 years after closure, 14 months for Firebase, 3 years for Jumio, 5 years for Sumsub) and names 41 services, with no data centre locations (22 of 30). Endpoints are removed and fields deprecated in dated changelog entries with no notice period or policy (8 of 20). Third parties named by service, locations not stated beyond transfers around the globe (10 of 20). 52."
        },
        "scores": {
          "a": 65,
          "b": 54
        }
      },
      {
        "by": 7,
        "category": "security",
        "leads": "bitget",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "API key with a user-set passphrase, HMAC-SHA256 signing, nine permission groups, IP allow-lists required for Withdrawal and FlexTransfers, trading keys without an IP disabled after 30 days of inactivity, revocation on the management page; no OAuth and no expiry on General keys (24 of 30). A General-only key is a true read-only mode and withdrawals are a separate permission; no confirmation step for writes beyond the key scope (12 of 20). Tools return the exchange's own data (10). The API key info endpoint shows permissions and IP lists; no per-call audit log was found (5 of 15). No security.txt, no disclosure policy or bounty on a page we could read, a whistleblower notice on the legal page (4 of 20). 55."
        },
        "scores": {
          "a": 62,
          "b": 55
        }
      },
      {
        "by": 5,
        "category": "reliability",
        "leads": "kucoin",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Graded with the hosted lines on the API at api.kucoin.com. No status page found (status.kucoin.com does not resolve, the docs link none), so 0 for the page and 5 for no readable history. Rate limits are published per VIP level with per-endpoint weights and IP limits for public endpoints (15). Every response carries gw-ratelimit-limit, gw-ratelimit-remaining and gw-ratelimit-reset, 429000 is documented with a wait rule, and orders take a clientOid the docs recommend as a UUID (15). No SLA (0). The UTA V2 API is the production surface (10). 45."
        },
        "scores": {
          "a": 40,
          "b": 45
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "bitget",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No machine payment protocol (0). Base spot and futures rates are stated in a help article without login, the tier table draws by script (20). Market data needs no key, demo trading costs nothing and no card is asked for at sign-up (20). A person registers, verifies identity and mints the key in a browser (0). 40.",
          "b": "No machine payment protocol (0). The spot base fee is stated in support articles without login, the futures base rate and the full tier table sit in images or behind script (15 of 20). Market data needs no key, no card is asked for at sign-up (20). A person registers, verifies identity and mints the key in a browser (0). 35."
        },
        "scores": {
          "a": 40,
          "b": 35
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BTG Technology Holdings Limited",
        "b": "KuCoin",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "14",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "io.github.Bitget-AI/bitget-agent-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-30",
        "b": "2026-11-02",
        "name": "Last release"
      },
      {
        "a": "2026-10-20",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-12-05",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "234 stars",
        "b": "55 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Bitget and KuCoin score within a point of each other on agent readiness, 53.9 (D) and 53.9 (D). KuCoin leads on reliability.",
        "question": "Which is better for AI agents, Bitget or KuCoin?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Bitget and KuCoin need an API key?"
      },
      {
        "answer": "Bitget runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for KuCoin.",
        "question": "Can an agent call Bitget and KuCoin without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 74 against 60",
          "Agent ergonomics, 83 against 62",
          "Security \u0026 auth, 62 against 55",
          "Payments \u0026 pricing, 40 against 35",
          "Maintenance \u0026 community, 78 against 73",
          "Transparency \u0026 trust, 65 against 54"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "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.",
        "slug": "bitget",
        "watchFor": "Hot and warm wallets lost about 388 million dollars on 24 September 2026 to forged withdrawal commands, and withdrawals were paused until 2 October"
      },
      {
        "aheadOn": [
          "Reliability, 45 against 40"
        ],
        "also": [
          "No incidents deducted, where Bitget loses 8 points for them"
        ],
        "goodFor": "An agent trading spot, margin and futures in a person's KuCoin account outside the restricted list, with no sandbox and no MCP server, so through the SDK or raw REST.",
        "slug": "kucoin",
        "watchFor": "No official MCP server; the registry's `kucoin` entry is a third party's keyless market-data package"
      }
    ],
    "history": null,
    "job": {
      "capability": "exchange.market-data",
      "name": "Exchange market data"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-bitget.json",
        "title": "Bitfinex API vs Bitget",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-bitget"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-kucoin.json",
        "title": "Bitfinex API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-bithumb.json",
        "title": "Bitget vs Bithumb Open API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-bithumb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-bitstamp.json",
        "title": "Bitget vs Bitstamp API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-bitstamp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-bybit.json",
        "title": "Bitget vs Bybit",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-bybit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-coinbase-advanced-trade.json",
        "title": "Bitget vs Coinbase Advanced Trade API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-coinbase-advanced-trade"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-coinbase-mcp.json",
        "title": "Bitget vs Coinbase MCP server (Coinbase for Agents)",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-coinbase-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-crypto-com-exchange.json",
        "title": "Bitget vs Crypto.com Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-crypto-com-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-deribit.json",
        "title": "Bitget vs Deribit",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-deribit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-dydx.json",
        "title": "Bitget vs dYdX",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-dydx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-gate-io.json",
        "title": "Bitget vs Gate",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-gate-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange.json",
        "title": "Bitget vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-htx.json",
        "title": "Bitget vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-hyperliquid.json",
        "title": "Bitget vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-hyperliquid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-kraken.json",
        "title": "Bitget vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-kraken"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-mexc.json",
        "title": "Bitget vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-okx.json",
        "title": "Bitget vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-uniswap.json",
        "title": "Bitget vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitget-vs-upbit.json",
        "title": "Bitget vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bithumb-vs-kucoin.json",
        "title": "Bithumb Open API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-kucoin.json",
        "title": "Bitstamp API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-kucoin.json",
        "title": "Bybit vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-kucoin.json",
        "title": "Crypto.com Exchange API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-kucoin.json",
        "title": "Gate vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.json",
        "title": "Gemini Exchange API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-kucoin.json",
        "title": "HTX trading API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/htx-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kucoin-vs-mexc.json",
        "title": "KuCoin vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/kucoin-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kucoin-vs-okx.json",
        "title": "KuCoin vs OKX API",
        "url": "https://www.anchorterminal.com/compare/kucoin-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kucoin-vs-uniswap.json",
        "title": "KuCoin vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/kucoin-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kucoin-vs-upbit.json",
        "title": "KuCoin vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/kucoin-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-bitget.json",
        "title": "Binance API vs Bitget",
        "url": "https://www.anchorterminal.com/compare/binance-vs-bitget"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-kucoin.json",
        "title": "Binance API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/binance-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-kucoin.json",
        "title": "Coinbase Advanced Trade API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-kucoin.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kraken-vs-kucoin.json",
        "title": "Kraken API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-kucoin.json",
        "title": "Deribit vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-kucoin.json",
        "title": "dYdX vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin.json",
        "title": "Hyperliquid vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin"
      }
    ],
    "panel": null,
    "scores": [
      {
        "bitget": 40,
        "by": 5,
        "edge": "kucoin",
        "key": "reliability",
        "kucoin": 45,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 74,
        "by": 14,
        "edge": "bitget",
        "key": "schema",
        "kucoin": 60,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bitget": 83,
        "by": 21,
        "edge": "bitget",
        "key": "ergonomics",
        "kucoin": 62,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bitget": 62,
        "by": 7,
        "edge": "bitget",
        "key": "security",
        "kucoin": 55,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bitget": 40,
        "by": 5,
        "edge": "bitget",
        "key": "payments",
        "kucoin": 35,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 78,
        "by": 5,
        "edge": "bitget",
        "key": "maintenance",
        "kucoin": 73,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bitget": 65,
        "by": 11,
        "edge": "bitget",
        "key": "transparency",
        "kucoin": 54,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Bitget and KuCoin score within a point of each other on agent readiness, 53.9 (D) and 53.9 (D). KuCoin leads on reliability. Both do exchange market data.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "kucoin": "KuCoin publishes pooled rate limits with remaining and reset headers, scoped keys where withdrawals and transfers need an IP allow-list, an official SDK in five languages and read-only agent skills. It runs no MCP server, has no sandbox, status page or OpenAPI file, and its terms name no legal entity."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bitget-vs-kucoin",
    "json": "https://www.anchorterminal.com/compare/bitget-vs-kucoin.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bitget-vs-kucoin.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/bitget-vs-kucoin.min.md"
  },
  "markdown": "Bitget and KuCoin score within a point of each other on agent readiness, 53.9 (D) and 53.9 (D). KuCoin leads on reliability. Both do exchange market data.\n\n- Bitget: grade D, 53.9/100, rank #824 of 1349. Markdown https://www.anchorterminal.com/tools/bitget.md · JSON https://www.anchorterminal.com/api/v1/tools/bitget.json\n- KuCoin: grade D, 53.9/100, rank #825 of 1349. Markdown https://www.anchorterminal.com/tools/kucoin.md · JSON https://www.anchorterminal.com/api/v1/tools/kucoin.json\n- Best crypto exchange APIs and MCP servers for AI agents: https://www.anchorterminal.com/best/crypto-exchanges/index.md\n- All 210 exchanges comparisons: https://www.anchorterminal.com/compare/crypto-exchanges/index.md\n\n## Which one, for what\n\n### Bitget (D)\n\nGood 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.\n\nAhead on:\n- Schema \u0026 documentation, 74 against 60\n- Agent ergonomics, 83 against 62\n- Security \u0026 auth, 62 against 55\n- Payments \u0026 pricing, 40 against 35\n- Maintenance \u0026 community, 78 against 73\n- Transparency \u0026 trust, 65 against 54\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch 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\n\n### KuCoin (D)\n\nGood for: An agent trading spot, margin and futures in a person's KuCoin account outside the restricted list, with no sandbox and no MCP server, so through the SDK or raw REST.\n\nAhead on:\n- Reliability, 45 against 40\n\nAlso in its favour:\n- No incidents deducted, where Bitget loses 8 points for them\n\nWatch for: No official MCP server; the registry's `kucoin` entry is a third party's keyless market-data package\n\n\n## Why the edge\n\n### Agent ergonomics: Bitget +21\n\n- Bitget (83): Read for the API with the MCP server as the agent route. 14 compact tools by default, module filters, a full surface on request and progressive discovery (25). Cursor pagination on CFD order history since 15 October 2026 and limit parameters on lists (15 of 20). Uniform ok or error result shape from the SDK with typed error classes and compact JSON in the text channel (13 of 20). clientOid on orders, `dryRun: true` on every write, `confirm: true` gating cancelAll and withdraw, annotations derived from risk level including readOnlyHint, destructiveHint and idempotentHint (18 of 20). Few required fields, official SDKs in five languages plus the TypeScript agent SDK and a CLI (12 of 15). 83.\n- KuCoin (62): Read for the API alone, since there is no MCP server. Responses take limit and cursor parameters on list endpoints and the order book depth is a parameter (14 of 25). Pagination and symbol filters on orders, fills and ledgers (15 of 20). Codes and messages per response, with the V2 scheme claimed to be clearer; the rate-limit page's own examples contradict its table, which costs an agent a turn (12 of 20). clientOid on orders makes retries safe; no MCP annotations to read (10 of 20). Three required fields on a spot order, official SDKs in five languages (11 of 15). 62.\n\n### Schema \u0026 documentation: Bitget +14\n\n- 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.\n- KuCoin (60): No OpenAPI or other machine-readable contract was found; the docs link a Postman workspace and the universal SDK is generated from an internal spec (8 of 25). No llms.txt; the skills hub ships Markdown SKILL.md files with endpoint tables for seven product areas, read-only (6 of 10). One docs page per endpoint with a description, permission and weight, but no when-to-use guidance (12 of 20). Typed parameter tables with enums for type and side and required flags (11 of 15). Request and response examples per endpoint and a unified six-digit error code scheme introduced with V2 (10 of 15). Dated changelog with V1 to V2 versioning (13 of 15). 60.\n\n### Transparency \u0026 trust: Bitget +11\n\n- Bitget (65): The editorial half. A closed hosted service with clear terms naming BTG Technology Holdings Limited; the toolkit is MIT (15 of 30). The privacy notice names the controller and EEA representative, gives 7-year and up to 10-year retention for compliance and litigation, and names recipients by category only (18 of 30). Deprecations and parameter changes carry effective dates (delta mode deprecated 27 August, symbol and category required from 30 September, snapshot changes with demo and live dates) but no written policy (15 of 20). Recipients by category, transfers under Seychelles law with no locations or provider names (5 of 20). 53.\n- KuCoin (54): The editorial half. A closed hosted service with terms that are clear on use, liability and law but name no company (12 of 30). The privacy policy gives retention periods by purpose and provider (2 years after closure, 14 months for Firebase, 3 years for Jumio, 5 years for Sumsub) and names 41 services, with no data centre locations (22 of 30). Endpoints are removed and fields deprecated in dated changelog entries with no notice period or policy (8 of 20). Third parties named by service, locations not stated beyond transfers around the globe (10 of 20). 52.\n\n### Security \u0026 auth: Bitget +7\n\n- 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.\n- KuCoin (55): API key with a user-set passphrase, HMAC-SHA256 signing, nine permission groups, IP allow-lists required for Withdrawal and FlexTransfers, trading keys without an IP disabled after 30 days of inactivity, revocation on the management page; no OAuth and no expiry on General keys (24 of 30). A General-only key is a true read-only mode and withdrawals are a separate permission; no confirmation step for writes beyond the key scope (12 of 20). Tools return the exchange's own data (10). The API key info endpoint shows permissions and IP lists; no per-call audit log was found (5 of 15). No security.txt, no disclosure policy or bounty on a page we could read, a whistleblower notice on the legal page (4 of 20). 55.\n\n### Reliability: KuCoin +5\n\n- 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.\n- KuCoin (45): Graded with the hosted lines on the API at api.kucoin.com. No status page found (status.kucoin.com does not resolve, the docs link none), so 0 for the page and 5 for no readable history. Rate limits are published per VIP level with per-endpoint weights and IP limits for public endpoints (15). Every response carries gw-ratelimit-limit, gw-ratelimit-remaining and gw-ratelimit-reset, 429000 is documented with a wait rule, and orders take a clientOid the docs recommend as a UUID (15). No SLA (0). The UTA V2 API is the production surface (10). 45.\n\n### Payments \u0026 pricing: Bitget +5\n\n- Bitget (40): No machine payment protocol (0). Base spot and futures rates are stated in a help article without login, the tier table draws by script (20). Market data needs no key, demo trading costs nothing and no card is asked for at sign-up (20). A person registers, verifies identity and mints the key in a browser (0). 40.\n- KuCoin (35): No machine payment protocol (0). The spot base fee is stated in support articles without login, the futures base rate and the full tier table sit in images or behind script (15 of 20). Market data needs no key, no card is asked for at sign-up (20). A person registers, verifies identity and mints the key in a browser (0). 35.\n\n## Score by category\n\n| Category | Weight | Bitget | KuCoin | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 45 | KuCoin +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 60 | Bitget +14 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 62 | Bitget +21 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 55 | Bitget +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 35 | Bitget +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 73 | Bitget +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 54 | Bitget +11 |\n| Negative events | ≤15 | -8 | 0 | |\n| **Total** | | **53.9 · D** | **53.9 · D** | |\n\n## Facts side by side\n\n| Fact | Bitget | KuCoin |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BTG Technology Holdings Limited | KuCoin |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Tools exposed | 14 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| MCP registry | `io.github.Bitget-AI/bitget-agent-mcp` | not listed |\n| Last release | 2026-10-30 | 2026-11-02 |\n| Terms last updated | 2026-10-20 | no date given |\n| Privacy policy last updated | 2025-12-05 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 234 stars | 55 stars |\n\n## Verdicts\n\n**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.\n\n**KuCoin.** KuCoin publishes pooled rate limits with remaining and reset headers, scoped keys where withdrawals and transfers need an IP allow-list, an official SDK in five languages and read-only agent skills. It runs no MCP server, has no sandbox, status page or OpenAPI file, and its terms name no legal entity.\n\n## Before you call either\n\n### Bitget\n\n1. Run `npx -y @bitget-ai/bitget-agent-mcp --read-only` for research and `--paper-trading` with a demo key before any live order; the two flags cannot be combined\n2. Call discover({}) first, then the intent verbs; add `dryRun: true` to any write to preview it, and pass `confirm: true` only after the person has agreed to a withdraw or cancelAll\n3. Send a unique clientOid of at most 64 characters on every order and reuse it on retry; orderId wins when both are sent\n4. 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\n5. Bind the key to an IP and keep write permission off a research key; the docs read show no separate withdrawal scope\n\n### KuCoin\n\n1. Mint a key with General only for research; add Spot or Futures only with an IP allow-list, since unbound trading keys are disabled after 30 days of inactivity\n2. Send a UUID clientOid on every order and keep it for the retry, and read the order back by clientOid before placing again\n3. Budget requests by weight against gw-ratelimit-remaining and sleep for gw-ratelimit-reset milliseconds on 429000; sub-accounts share the pool\n4. There is no sandbox, so rehearse with the smallest order size on a dedicated sub-account\n5. Use the UTA V2 endpoints and hosts; the Classic API loses endpoints without notice, as the margin credit endpoints did on 21 October 2026\n\n## Questions\n\n### Which is better for AI agents, Bitget or KuCoin?\n\nBitget and KuCoin score within a point of each other on agent readiness, 53.9 (D) and 53.9 (D). KuCoin leads on reliability.\n\n### Do Bitget and KuCoin need an API key?\n\nBoth need an API key.\n\n### Can an agent call Bitget and KuCoin without installing anything?\n\nBitget runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for KuCoin.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bitget-vs-kucoin.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bitget-vs-kucoin.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bitget\", \"b\": \"kucoin\"}`. From a terminal: `anchor compare bitget kucoin`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bitget.json and https://www.anchorterminal.com/api/v1/tools/kucoin.json\n\n## Other comparisons with Bitget or KuCoin\n\n- [Bitfinex API vs Bitget](https://www.anchorterminal.com/compare/bitfinex-vs-bitget.md)\n- [Bitfinex API vs KuCoin](https://www.anchorterminal.com/compare/bitfinex-vs-kucoin.md)\n- [Bitget vs Bithumb Open API](https://www.anchorterminal.com/compare/bitget-vs-bithumb.md)\n- [Bitget vs Bitstamp API](https://www.anchorterminal.com/compare/bitget-vs-bitstamp.md)\n- [Bitget vs Bybit](https://www.anchorterminal.com/compare/bitget-vs-bybit.md)\n- [Bitget vs Coinbase Advanced Trade API](https://www.anchorterminal.com/compare/bitget-vs-coinbase-advanced-trade.md)\n- [Bitget vs Coinbase MCP server (Coinbase for Agents)](https://www.anchorterminal.com/compare/bitget-vs-coinbase-mcp.md)\n- [Bitget vs Crypto.com Exchange API](https://www.anchorterminal.com/compare/bitget-vs-crypto-com-exchange.md)\n- [Bitget vs Deribit](https://www.anchorterminal.com/compare/bitget-vs-deribit.md)\n- [Bitget vs dYdX](https://www.anchorterminal.com/compare/bitget-vs-dydx.md)\n- [Bitget vs Gate](https://www.anchorterminal.com/compare/bitget-vs-gate-io.md)\n- [Bitget vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange.md)\n- [Bitget vs HTX trading API](https://www.anchorterminal.com/compare/bitget-vs-htx.md)\n- [Bitget vs Hyperliquid](https://www.anchorterminal.com/compare/bitget-vs-hyperliquid.md)\n- [Bitget vs Kraken API](https://www.anchorterminal.com/compare/bitget-vs-kraken.md)\n- [Bitget vs MEXC API](https://www.anchorterminal.com/compare/bitget-vs-mexc.md)\n- [Bitget vs OKX API](https://www.anchorterminal.com/compare/bitget-vs-okx.md)\n- [Bitget vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitget-vs-uniswap.md)\n- [Bitget vs Upbit Open API](https://www.anchorterminal.com/compare/bitget-vs-upbit.md)\n- [Bithumb Open API vs KuCoin](https://www.anchorterminal.com/compare/bithumb-vs-kucoin.md)\n- [Bitstamp API vs KuCoin](https://www.anchorterminal.com/compare/bitstamp-vs-kucoin.md)\n- [Bybit vs KuCoin](https://www.anchorterminal.com/compare/bybit-vs-kucoin.md)\n- [Crypto.com Exchange API vs KuCoin](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-kucoin.md)\n- [Gate vs KuCoin](https://www.anchorterminal.com/compare/gate-io-vs-kucoin.md)\n- [Gemini Exchange API vs KuCoin](https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.md)\n- [HTX trading API vs KuCoin](https://www.anchorterminal.com/compare/htx-vs-kucoin.md)\n- [KuCoin vs MEXC API](https://www.anchorterminal.com/compare/kucoin-vs-mexc.md)\n- [KuCoin vs OKX API](https://www.anchorterminal.com/compare/kucoin-vs-okx.md)\n- [KuCoin vs Uniswap Trading API](https://www.anchorterminal.com/compare/kucoin-vs-uniswap.md)\n- [KuCoin vs Upbit Open API](https://www.anchorterminal.com/compare/kucoin-vs-upbit.md)\n- [Binance API vs Bitget](https://www.anchorterminal.com/compare/binance-vs-bitget.md)\n- [Binance API vs KuCoin](https://www.anchorterminal.com/compare/binance-vs-kucoin.md)\n- [Coinbase Advanced Trade API vs KuCoin](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-kucoin.md)\n- [Coinbase MCP server (Coinbase for Agents) vs KuCoin](https://www.anchorterminal.com/compare/coinbase-mcp-vs-kucoin.md)\n- [Kraken API vs KuCoin](https://www.anchorterminal.com/compare/kraken-vs-kucoin.md)\n- [Deribit vs KuCoin](https://www.anchorterminal.com/compare/deribit-vs-kucoin.md)\n- [dYdX vs KuCoin](https://www.anchorterminal.com/compare/dydx-vs-kucoin.md)\n- [Hyperliquid vs KuCoin](https://www.anchorterminal.com/compare/hyperliquid-vs-kucoin.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Bitget vs KuCoin",
        "url": ""
      }
    ],
    "description": "Bitget and KuCoin score within a point of each other for exchange market data, 53.9 and 53.9 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Bitget D 53.9",
      "KuCoin D 53.9",
      "scores"
    ],
    "h1": "Bitget vs KuCoin",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/bitget-vs-kucoin",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bitget vs KuCoin for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/bitget-vs-kucoin"
  },
  "tokens": {
    "markdown": 4600,
    "slim": 2480
  },
  "version": 1
}
