{
  "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": "OKX API scores 64.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 3 of 7 scored categories. Bitget leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "okx",
      "name": "OKX API",
      "vendor": "OKX",
      "vendorUrl": "https://www.okx.com/docs-v5/en/",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "OKX's V5 API covers spot, margin, perpetual, futures and options trading, account and market data over REST and WebSocket, with demo trading on the same host and an open-source Agent Trade Kit whose okx-trade-mcp package is a local MCP server.",
      "url": "https://www.anchorterminal.com/tools/okx",
      "markdownUrl": "https://www.anchorterminal.com/tools/okx.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/okx.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/okx.json",
      "dns": "okx.grade.anchorterminal.com",
      "repo": "https://github.com/okx/agent-trade-kit",
      "license": "Proprietary hosted service under OKX's Terms of Service (29 October 2026) and API Agreement (28 July 2026). The Agent Trade Kit (MCP server, CLI and skills) is MIT",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@okx_ai/okx-trade-mcp"
        },
        {
          "registry": "npm",
          "name": "@okx_ai/okx-trade-cli"
        },
        {
          "registry": "pypi",
          "name": "python-okx"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key, secret and passphrase made at okx.com/account/my-api, with HMAC-SHA256 signatures over a timestamp and the request. Permissions are Read, Trade and Withdraw, singly or combined; each key binds up to 20 IP addresses or ranges, and a Trade or Withdraw key with no IP binding expires after 14 days without use. Demo trading uses the same host with the header `x-simulated-trading` set to 1 and keys that do not expire. US and Australian users call us.okx.com and EEA users eea.okx.com. The MCP server reads the key from ~/.okx/config.toml, checks its permissions at startup and hides order tools when the key cannot trade (https://www.okx.com/docs-v5/en/, https://www.okx.com/docs-v5/agent_en/, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API costs nothing to call. Trades carry maker and taker fees by regular and VIP level; the fee page at okx.com/fees loads its table by script and the fee FAQ says the rates that apply are the ones shown while logged in, so the lowest tier's rates are unread. Public market data and demo trading need no funded account.",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the V5 docs, the API agreement or the Agent Trade Kit (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 170,
      "popularity": {
        "githubStars": 499,
        "npmWeekly": 1839,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.okx.com/docs-v5/en/",
      "llmsTxt": "https://www.okx.com/llms.txt",
      "capabilities": [
        "exchange.spot-trading",
        "exchange.market-data",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "api-key",
        "mcp",
        "cli",
        "llms-txt",
        "sandbox",
        "typescript",
        "python",
        "usage-priced",
        "no-card",
        "mit"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.3,
        "grade": "B",
        "agentReady": false,
        "rank": 432,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 81,
          "payments": 20,
          "reliability": 65,
          "schema": 73,
          "security": 68,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "OKX publishes per-endpoint rate limits, Read, Trade and Withdraw key permissions with IP binding, demo trading on the production host, and an MIT MCP server with 170 tools, a read-only flag and a permission check at startup. The fee table and privacy policy were not read, no OpenAPI file was found, and the news tools return third-party text.",
        "bestFor": "An agent trading spot, perpetuals, futures or options on a person's OKX account from a local machine, with demo trading to test first and grid or DCA bots through the kit.",
        "strengths": [
          "Official local MCP server, MIT, with modules, --read-only, a demo profile, readOnlyHint annotations and a startup check that hides order tools when the key cannot trade",
          "Keys limited to Read, Trade or Withdraw, bound to up to 20 IPs, with unbound Trade and Withdraw keys expiring after 14 idle days",
          "Rate limits published per endpoint and per User ID, with sub-account and WebSocket limits in numbers",
          "Demo trading on the production hosts with one header, keys that do not expire, and a demo profile in the kit",
          "An API Agreement written for agents, naming prohibited tactics, minimum key scope and rate-limit circumvention"
        ],
        "weaknesses": [
          "The fee table loads by script and the fee FAQ defers to the logged-in view, so maker and taker rates were not read",
          "No OpenAPI file was found in the docs; the machine-readable contract is the kit's tool definitions",
          "The status page lists incidents without component history, and its newest entry is from March 2024",
          "The news and smart money tools return third-party text with no documented guidance on treating it as untrusted",
          "Trade tools in the kit carry destructiveHint false, and the npm package runs a postinstall script"
        ],
        "agentNotes": [
          "Start okx-trade-mcp with --profile demo first, then --read-only on a live key; load only the modules the task needs",
          "Use a sub-account key with Read and Trade only, bound to the agent's IP; an unbound Trade key expires after 14 idle days",
          "Stay under 60 place-order requests per 2 seconds per instrument and at most 3 amendments in flight per order; 50011 means the limit was hit",
          "Send a clOrdId on every order and use the structured error block (code, message, endpoint) to diagnose with read-only tools before retrying",
          "Call us.okx.com or eea.okx.com for US, Australian and EEA accounts; openapi.okx.com does not serve those regions"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.3
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 81,
          "payments": 20,
          "reliability": 65,
          "schema": 73,
          "security": 68,
          "transparency": 38
        },
        "provenanceScore": 85,
        "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": "npm install -g @okx_ai/okx-trade-mcp @okx_ai/okx-trade-cli",
        "http": "curl https://www.okx.com/api/v5/market/ticker?instId=BTC-USDT",
        "config": {
          "mcpServers": {
            "okx-demo": {
              "args": [
                "-y",
                "@okx_ai/okx-trade-mcp",
                "--profile",
                "demo"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/exchange.spot-trading",
        "tool": "https://letme.dev/okx"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Aux Cayes FinTech Co. Ltd.",
        "domain": "okx.com",
        "domainRegistered": "2001-07-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.okx.com/help/terms-of-service",
        "privacy": "https://www.okx.com/help/privacy-policy",
        "statusPage": "https://www.okx.com/status",
        "changelog": "https://www.okx.com/docs-v5/log_en/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The Terms of Service (last updated 29 October 2026) name Aux Cayes FinTech Co. Ltd. for all users not served by a regional OKX entity; the page metadata of the API Agreement also lists it as publisher. The governing-law clause sat past the part of the page we read. The privacy policy URL is OKX's help-centre page and was not read.",
          "RDAP gives okx.com a registration date of 3 July 2001, long before OKX took the name in 2022.",
          "https://www.okx.com/.well-known/security.txt answers 404; the Agent Trade Kit's SECURITY.md names security@okx.com.",
          "www.okx.com/robots.txt allows the docs, help and status pages read and /llms.txt, and disallows account, KYC and other private paths.",
          "okx.com/status is OKX's own page with issue descriptions and maintenance notices in UTC+8, no component history and no feed found."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/okx.json",
      "live": {
        "slug": "okx",
        "vendorStatus": {
          "page": "https://www.okx.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T21:26:18.893765005Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@okx_ai/okx-trade-cli",
            "version": "1.5.0",
            "seenAt": "2026-11-04T20:41:03.618269957Z"
          },
          {
            "registry": "npm",
            "name": "@okx_ai/okx-trade-mcp",
            "version": "1.5.0",
            "seenAt": "2026-11-04T20:41:02.747721806Z"
          },
          {
            "registry": "pypi",
            "name": "python-okx",
            "version": "0.4.4",
            "released": "2026-09-07",
            "seenAt": "2026-11-04T20:41:04.955491615Z"
          }
        ],
        "githubStars": 501,
        "npmWeekly": 1742,
        "pypiWeekly": 13205,
        "securityTxt": {
          "url": "https://okx.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:49.77403161Z"
        },
        "updatedAt": "2026-11-04T21:26:18.893765005Z"
      }
    },
    "edges": [
      {
        "by": 25,
        "category": "reliability",
        "leads": "okx",
        "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": "Read with the hosted lines on the V5 REST API. okx.com/status is OKX's own page with issue descriptions, maintenance notices and deposit and withdrawal status, but no component history or feed (10 of 20). It lists no incident between 5 August and 3 November 2026; its newest entry is from March 2024, and whether every incident reaches the page cannot be told, so read as clean with a doubt (20 of 30). Rate limits per endpoint, per User ID and per sub-account with numbers, and WebSocket limits (15). Error 50011 on a limit, a clOrdId on orders and a cap of 3 amendments in flight, but no Retry-After or backoff guidance found (10 of 15). No SLA (0). Generally available (10). 10 + 20 + 15 + 10 + 0 + 10 = 65."
        },
        "scores": {
          "a": 40,
          "b": 65
        }
      },
      {
        "by": 20,
        "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 fee table loads by script and the fee FAQ defers to the logged-in view, so no rate was read (0 of 20, unchecked). Public market data and demo trading need no funded account or card (20). A person signs up, verifies and mints a key (0). 0 + 0 + 20 + 0 = 20."
        },
        "scores": {
          "a": 40,
          "b": 20
        }
      },
      {
        "by": 6,
        "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": "limit parameters on books, candles and history, and in the kit --modules and --read-only narrow 170 tools to the three default modules; no field selection (17 of 25). after, before and limit cursors on history endpoints (18 of 20). Numeric codes with messages, such as 51020 for an invalid quantity, and the kit returns a structured error block with code, message and endpoint (17 of 20). clOrdId on orders, batch endpoints and a cap of 3 amendments in flight; the kit sets readOnlyHint on query tools but destructiveHint false on order tools and has no idempotency key (13 of 20). python-okx, the CLI and a demo profile, with passphrase and HMAC signing on every private call (12 of 15). 17 + 18 + 17 + 13 + 12 = 77."
        },
        "scores": {
          "a": 83,
          "b": 77
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "okx",
        "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": "Key, secret and passphrase with Read, Trade and Withdraw permissions, up to 20 bound IPs, revocation in the account, and unbound Trade or Withdraw keys that expire after 14 idle days; no OAuth (28 of 30). Read-only keys, sub-account keys, demo trading, the kit's --read-only flag and its startup check that hides order tools when the key cannot trade, and an API Agreement requiring minimum scope; no confirmation step in the kit (18 of 20). The news and smartmoney modules return third-party text and the docs read give no guidance on treating it as untrusted (5 of 15). An account audit log tool in the kit and usage records for unbound keys in the Security Center, no per-call log (9 of 15). No security.txt; SECURITY.md with security@okx.com and GitHub private advisories; certifications and a bounty not read (8 of 20). 28 + 18 + 5 + 9 + 8 = 68."
        },
        "scores": {
          "a": 62,
          "b": 68
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BTG Technology Holdings Limited",
        "b": "OKX",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "stdio",
        "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": "none",
        "b": "Proprietary hosted service under OKX's Terms of Service (29 October 2026) and API Agreement (28 July 2026). The Agent Trade Kit (MCP server, CLI and skills) is MIT",
        "name": "Licence"
      },
      {
        "a": "14",
        "b": "170",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.Bitget-AI/bitget-agent-mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-30",
        "b": "2026-10-28",
        "name": "Last release"
      },
      {
        "a": "2026-10-20",
        "b": "2026-10-29",
        "name": "Terms last updated"
      },
      {
        "a": "2025-12-05",
        "b": "couldn't be read",
        "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": "not found in the text",
        "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": "499 stars, 1.8k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "OKX API scores 64.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 3 of 7 scored categories. Bitget leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Bitget or OKX API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Bitget and OKX API need an API key?"
      },
      {
        "answer": "Bitget runs on your own machine, with no hosted endpoint listed. OKX API runs on your own machine, with no hosted endpoint listed.",
        "question": "Can an agent call Bitget and OKX API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 83 against 77",
          "Payments \u0026 pricing, 40 against 20"
        ],
        "also": null,
        "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, 65 against 40",
          "Security \u0026 auth, 68 against 62"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where Bitget loses 8 points for them"
        ],
        "goodFor": "An agent trading spot, perpetuals, futures or options on a person's OKX account from a local machine, with demo trading to test first and grid or DCA bots through the kit.",
        "slug": "okx",
        "watchFor": "The fee table loads by script and the fee FAQ defers to the logged-in view, so maker and taker rates were not read"
      }
    ],
    "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-okx.json",
        "title": "Bitfinex API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-okx"
      },
      {
        "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-kucoin.json",
        "title": "Bitget vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-kucoin"
      },
      {
        "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-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-okx.json",
        "title": "Bithumb Open API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-okx.json",
        "title": "Bitstamp API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-okx.json",
        "title": "Bybit vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-okx.json",
        "title": "Crypto.com Exchange API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-okx.json",
        "title": "Gate vs OKX API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.json",
        "title": "Gemini Exchange API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-okx.json",
        "title": "HTX trading API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-okx"
      },
      {
        "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/mexc-vs-okx.json",
        "title": "MEXC API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/mexc-vs-okx"
      },
      {
        "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-okx.json",
        "title": "Binance API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-okx.json",
        "title": "Coinbase Advanced Trade API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-okx.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs OKX API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kraken-vs-okx.json",
        "title": "Kraken API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/okx-vs-uniswap.json",
        "title": "OKX API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/okx-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/okx-vs-upbit.json",
        "title": "OKX API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/okx-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-okx.json",
        "title": "Deribit vs OKX API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-okx.json",
        "title": "dYdX vs OKX API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-okx.json",
        "title": "Hyperliquid vs OKX API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-okx"
      }
    ],
    "panel": null,
    "scores": [
      {
        "bitget": 40,
        "by": 25,
        "edge": "okx",
        "key": "reliability",
        "name": "Reliability",
        "okx": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 74,
        "by": 1,
        "edge": "bitget",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "okx": 73,
        "weight": 13
      },
      {
        "bitget": 83,
        "by": 6,
        "edge": "bitget",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "okx": 77,
        "weight": 13
      },
      {
        "bitget": 62,
        "by": 6,
        "edge": "okx",
        "key": "security",
        "name": "Security \u0026 auth",
        "okx": 68,
        "weight": 14
      },
      {
        "bitget": 40,
        "by": 20,
        "edge": "bitget",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "okx": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 78,
        "by": 3,
        "edge": "okx",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "okx": 81,
        "weight": 7
      },
      {
        "bitget": 65,
        "by": 3,
        "edge": "bitget",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "okx": 62,
        "weight": 7
      }
    ],
    "summary": "OKX API scores 64.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 3 of 7 scored categories. Bitget leads on agent ergonomics and payments \u0026 pricing. 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.",
      "okx": "OKX publishes per-endpoint rate limits, Read, Trade and Withdraw key permissions with IP binding, demo trading on the production host, and an MIT MCP server with 170 tools, a read-only flag and a permission check at startup. The fee table and privacy policy were not read, no OpenAPI file was found, and the news tools return third-party text."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bitget-vs-okx",
    "json": "https://www.anchorterminal.com/compare/bitget-vs-okx.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bitget-vs-okx.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/bitget-vs-okx.min.md"
  },
  "markdown": "OKX API scores 64.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 3 of 7 scored categories. Bitget leads on agent ergonomics and payments \u0026 pricing. 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- OKX API: grade B, 64.3/100, rank #432 of 1349. Markdown https://www.anchorterminal.com/tools/okx.md · JSON https://www.anchorterminal.com/api/v1/tools/okx.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- Agent ergonomics, 83 against 77\n- Payments \u0026 pricing, 40 against 20\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### OKX API (B)\n\nGood for: An agent trading spot, perpetuals, futures or options on a person's OKX account from a local machine, with demo trading to test first and grid or DCA bots through the kit.\n\nAhead on:\n- Reliability, 65 against 40\n- Security \u0026 auth, 68 against 62\n\nAlso in its favour:\n- Free to start without a card\n- No incidents deducted, where Bitget loses 8 points for them\n\nWatch for: The fee table loads by script and the fee FAQ defers to the logged-in view, so maker and taker rates were not read\n\n\n## Why the edge\n\n### Reliability: OKX API +25\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- OKX API (65): Read with the hosted lines on the V5 REST API. okx.com/status is OKX's own page with issue descriptions, maintenance notices and deposit and withdrawal status, but no component history or feed (10 of 20). It lists no incident between 5 August and 3 November 2026; its newest entry is from March 2024, and whether every incident reaches the page cannot be told, so read as clean with a doubt (20 of 30). Rate limits per endpoint, per User ID and per sub-account with numbers, and WebSocket limits (15). Error 50011 on a limit, a clOrdId on orders and a cap of 3 amendments in flight, but no Retry-After or backoff guidance found (10 of 15). No SLA (0). Generally available (10). 10 + 20 + 15 + 10 + 0 + 10 = 65.\n\n### Payments \u0026 pricing: Bitget +20\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- OKX API (20): No machine payment protocol (0). The fee table loads by script and the fee FAQ defers to the logged-in view, so no rate was read (0 of 20, unchecked). Public market data and demo trading need no funded account or card (20). A person signs up, verifies and mints a key (0). 0 + 0 + 20 + 0 = 20.\n\n### Agent ergonomics: Bitget +6\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- OKX API (77): limit parameters on books, candles and history, and in the kit --modules and --read-only narrow 170 tools to the three default modules; no field selection (17 of 25). after, before and limit cursors on history endpoints (18 of 20). Numeric codes with messages, such as 51020 for an invalid quantity, and the kit returns a structured error block with code, message and endpoint (17 of 20). clOrdId on orders, batch endpoints and a cap of 3 amendments in flight; the kit sets readOnlyHint on query tools but destructiveHint false on order tools and has no idempotency key (13 of 20). python-okx, the CLI and a demo profile, with passphrase and HMAC signing on every private call (12 of 15). 17 + 18 + 17 + 13 + 12 = 77.\n\n### Security \u0026 auth: OKX API +6\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- OKX API (68): Key, secret and passphrase with Read, Trade and Withdraw permissions, up to 20 bound IPs, revocation in the account, and unbound Trade or Withdraw keys that expire after 14 idle days; no OAuth (28 of 30). Read-only keys, sub-account keys, demo trading, the kit's --read-only flag and its startup check that hides order tools when the key cannot trade, and an API Agreement requiring minimum scope; no confirmation step in the kit (18 of 20). The news and smartmoney modules return third-party text and the docs read give no guidance on treating it as untrusted (5 of 15). An account audit log tool in the kit and usage records for unbound keys in the Security Center, no per-call log (9 of 15). No security.txt; SECURITY.md with security@okx.com and GitHub private advisories; certifications and a bounty not read (8 of 20). 28 + 18 + 5 + 9 + 8 = 68.\n\n## Score by category\n\n| Category | Weight | Bitget | OKX API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 65 | OKX API +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 73 | Bitget +1 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 77 | Bitget +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 68 | OKX API +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Bitget +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 81 | OKX API +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 62 | Bitget +3 |\n| Negative events | ≤15 | -8 | 0 | |\n| **Total** | | **53.9 · D** | **64.3 · B** | |\n\n## Facts side by side\n\n| Fact | Bitget | OKX API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BTG Technology Holdings Limited | OKX |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio | stdio |\n| Auth | API key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | none | Proprietary hosted service under OKX's Terms of Service (29 October 2026) and API Agreement (28 July 2026). The Agent Trade Kit (MCP server, CLI and skills) is MIT |\n| Tools exposed | 14 | 170 |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | yes |\n| MCP registry | `io.github.Bitget-AI/bitget-agent-mcp` | not listed |\n| Last release | 2026-10-30 | 2026-10-28 |\n| Terms last updated | 2026-10-20 | 2026-10-29 |\n| Privacy policy last updated | 2025-12-05 | couldn't be read |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\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 | 499 stars, 1.8k npm/wk |\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**OKX API.** OKX publishes per-endpoint rate limits, Read, Trade and Withdraw key permissions with IP binding, demo trading on the production host, and an MIT MCP server with 170 tools, a read-only flag and a permission check at startup. The fee table and privacy policy were not read, no OpenAPI file was found, and the news tools return third-party text.\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### OKX API\n\n1. Start okx-trade-mcp with --profile demo first, then --read-only on a live key; load only the modules the task needs\n2. Use a sub-account key with Read and Trade only, bound to the agent's IP; an unbound Trade key expires after 14 idle days\n3. Stay under 60 place-order requests per 2 seconds per instrument and at most 3 amendments in flight per order; 50011 means the limit was hit\n4. Send a clOrdId on every order and use the structured error block (code, message, endpoint) to diagnose with read-only tools before retrying\n5. Call us.okx.com or eea.okx.com for US, Australian and EEA accounts; openapi.okx.com does not serve those regions\n\n## Questions\n\n### Which is better for AI agents, Bitget or OKX API?\n\nOKX API scores 64.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 3 of 7 scored categories. Bitget leads on agent ergonomics and payments \u0026 pricing.\n\n### Do Bitget and OKX API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Bitget and OKX API without installing anything?\n\nBitget runs on your own machine, with no hosted endpoint listed. OKX API runs on your own machine, with no hosted endpoint listed.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bitget-vs-okx.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bitget-vs-okx.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bitget\", \"b\": \"okx\"}`. From a terminal: `anchor compare bitget okx`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bitget.json and https://www.anchorterminal.com/api/v1/tools/okx.json\n\n## Other comparisons with Bitget or OKX API\n\n- [Bitfinex API vs Bitget](https://www.anchorterminal.com/compare/bitfinex-vs-bitget.md)\n- [Bitfinex API vs OKX API](https://www.anchorterminal.com/compare/bitfinex-vs-okx.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 KuCoin](https://www.anchorterminal.com/compare/bitget-vs-kucoin.md)\n- [Bitget vs MEXC API](https://www.anchorterminal.com/compare/bitget-vs-mexc.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 OKX API](https://www.anchorterminal.com/compare/bithumb-vs-okx.md)\n- [Bitstamp API vs OKX API](https://www.anchorterminal.com/compare/bitstamp-vs-okx.md)\n- [Bybit vs OKX API](https://www.anchorterminal.com/compare/bybit-vs-okx.md)\n- [Crypto.com Exchange API vs OKX API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-okx.md)\n- [Gate vs OKX API](https://www.anchorterminal.com/compare/gate-io-vs-okx.md)\n- [Gemini Exchange API vs OKX API](https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.md)\n- [HTX trading API vs OKX API](https://www.anchorterminal.com/compare/htx-vs-okx.md)\n- [KuCoin vs OKX API](https://www.anchorterminal.com/compare/kucoin-vs-okx.md)\n- [MEXC API vs OKX API](https://www.anchorterminal.com/compare/mexc-vs-okx.md)\n- [Binance API vs Bitget](https://www.anchorterminal.com/compare/binance-vs-bitget.md)\n- [Binance API vs OKX API](https://www.anchorterminal.com/compare/binance-vs-okx.md)\n- [Coinbase Advanced Trade API vs OKX API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-okx.md)\n- [Coinbase MCP server (Coinbase for Agents) vs OKX API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-okx.md)\n- [Kraken API vs OKX API](https://www.anchorterminal.com/compare/kraken-vs-okx.md)\n- [OKX API vs Uniswap Trading API](https://www.anchorterminal.com/compare/okx-vs-uniswap.md)\n- [OKX API vs Upbit Open API](https://www.anchorterminal.com/compare/okx-vs-upbit.md)\n- [Deribit vs OKX API](https://www.anchorterminal.com/compare/deribit-vs-okx.md)\n- [dYdX vs OKX API](https://www.anchorterminal.com/compare/dydx-vs-okx.md)\n- [Hyperliquid vs OKX API](https://www.anchorterminal.com/compare/hyperliquid-vs-okx.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 OKX API",
        "url": ""
      }
    ],
    "description": "OKX scores 64.3 (B) to Bitget's 53.9 (D) for exchange market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Bitget D 53.9",
      "OKX API B 64.3",
      "scores"
    ],
    "h1": "Bitget vs OKX API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/bitget-vs-okx",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bitget vs OKX for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/bitget-vs-okx"
  },
  "tokens": {
    "markdown": 4100,
    "slim": 1930
  },
  "version": 1
}
