{
  "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": 890,
        "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": "Uniswap Trading API scores 63.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on agent ergonomics and transparency \u0026 trust.",
    "b": {
      "slug": "uniswap",
      "name": "Uniswap Trading API",
      "vendor": "Uniswap Labs",
      "vendorUrl": "https://developers.uniswap.org",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Uniswap Labs' Trading API quotes and builds swap, bridge and liquidity transactions across Uniswap v2, v3, v4 and UniswapX on 21 chains. The caller signs with its own wallet and broadcasts; the API is free behind an API key.",
      "url": "https://www.anchorterminal.com/tools/uniswap",
      "markdownUrl": "https://www.anchorterminal.com/tools/uniswap.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/uniswap.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/uniswap.json",
      "dns": "uniswap.grade.anchorterminal.com",
      "repo": "https://github.com/Uniswap/uniswap-ai",
      "license": "The Trading API is a proprietary hosted service under Uniswap Labs' API Terms of Use, which we couldn't read; the SDKs and the uniswap-ai skills are MIT. Swaps execute on the open-source Uniswap protocol contracts on chain",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@uniswap/v4-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "An API key from the Uniswap Developer Platform dashboard, sent as `x-api-key` on every request; the docs say to keep it server-side. The API never holds funds or keys. `/quote` returns `permitData` the user signs as EIP-712 typed data, `/swap` returns calldata the caller signs and broadcasts, and `/order` takes a signed UniswapX order. An optional `X-Agent-Info` header with `decision_origin` of `autonomous` or `human_mediated` attributes agent traffic (https://developers.uniswap.org/docs/trading/swapping-api/start-building/integration-guide, checked 2026-11-03).",
      "pricing": "free",
      "pricingNotes": "The API is free, with no subscription or per-call charge, per the FAQ and the Developer Platform post of 16 April 2026. Swaps pay the pool fee and gas on chain; UniswapX orders are gasless for the swapper. Integrators may add up to 4 fee entries totalling at most 500 bips. Each key is limited to 6 requests a second (https://developers.uniswap.org/docs/trading/swapping-api/faqs, checked 2026-11-03).",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the API's endpoints (checked 2026-11-03). The uniswap-ai repository's `pay-with-any-token` skill helps an agent pay HTTP 402 challenges (MPP or x402) by swapping tokens through Uniswap, which is a buyer-side skill, not a paid endpoint.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 236,
        "npmWeekly": 153782,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://developers.uniswap.org/docs/trading/overview",
      "llmsTxt": "https://developers.uniswap.org/llms.txt",
      "openapi": "https://trade-api.gateway.uniswap.org/v1/api.json",
      "capabilities": [
        "exchange.spot-trading",
        "exchange.market-data",
        "market.crypto",
        "wallet.onchain"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "openapi",
        "llms-txt",
        "api-key",
        "free",
        "no-card",
        "typescript",
        "agent-skills",
        "no-status-page",
        "security-txt",
        "rest"
      ],
      "lastRelease": "2026-10-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.3,
        "grade": "B",
        "agentReady": false,
        "rank": 446,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 88,
          "payments": 40,
          "reliability": 42,
          "schema": 90,
          "security": 63,
          "transparency": 55
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "The Trading API is free, documented by an OpenAPI file with stable error codes, holds no keys since the caller signs every swap, and posts sunset notices 30 days ahead. There is no official MCP server, status page or sandbox, the key is a plain header secret at 6 requests a second, and the API terms refused our reader.",
        "bestFor": "An agent swapping or bridging tokens from its own wallet on 21 EVM chains, or managing liquidity positions, with routing done for it.",
        "strengths": [
          "OpenAPI 3.0 file, llms.txt, llms-full.txt and Markdown twins, with 400, 401, 404 and 429 schemas and a stable `errorCode` enum",
          "The API builds calldata and never holds funds or keys; the caller signs `permitData` and the transaction with its own wallet",
          "Free with no per-call charge, 21 chains for classic swaps and UniswapX on 10 of them",
          "Dated changelog notices with a 30-day minimum sunset policy, and the uniswap-ai skills (MIT) for coding agents",
          "A documented `X-Agent-Info` header for autonomous and human-mediated traffic, and retry guidance per error code"
        ],
        "weaknesses": [
          "No official MCP server; the registry's Uniswap entries are third parties",
          "No status page, no SLA and no sandbox; tests use production endpoints on testnets",
          "A single `x-api-key` per key with 6 requests a second and no scopes; the dashboard is disallowed by robots.txt so key management is unchecked",
          "The API Terms of Use and Uniswap Labs' terms and privacy policy are on a help centre that answered 403 or draw by script, so restricted countries and data handling are unchecked",
          "No official client library for the API; the TypeScript SDKs cover the protocol and quoting, not the API"
        ],
        "agentNotes": [
          "Call `/check_approval` first, then `/quote`; if `permitData` is non-null sign it as EIP-712 and send `signature` and `permitData` together to `/swap` or `/order`, never one without the other",
          "Route on the quote's `routing`: `CLASSIC`, `WRAP`, `UNWRAP` and `BRIDGE` go to `/swap`, `DUTCH_V2`, `DUTCH_V3` and `PRIORITY` to `/order`, `CHAINED` to `/plan`",
          "Refresh any quote older than 30 seconds before broadcasting, and on 429 pause every request from the key before retrying",
          "Retry unchanged only on `UpstreamTimeoutError`; `NoRouteFoundError` and `QuoteAmountTooLowError` need a different amount, token or `protocols` list",
          "Send `X-Agent-Info` with `decision_origin: autonomous` and keep `x-api-key` server-side"
        ],
        "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": 63.3
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 88,
          "payments": 40,
          "reliability": 42,
          "schema": 90,
          "security": 63,
          "transparency": 35
        },
        "provenanceScore": 74,
        "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 skills add Uniswap/uniswap-ai",
        "http": "curl -X POST https://trade-api.gateway.uniswap.org/v1/quote -H 'x-api-key: YOUR_UNISWAP_API_KEY' -H 'Content-Type: application/json' -d '{\"tokenIn\":\"0x0000000000000000000000000000000000000000\",\"tokenOut\":\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\"tokenInChainId\":1,\"tokenOutChainId\":1,\"type\":\"EXACT_INPUT\",\"amount\":\"1000000000000000000\",\"swapper\":\"0xYourWallet\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/exchange.spot-trading",
        "tool": "https://letme.dev/uniswap"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "Uniswap Labs",
        "domain": "uniswap.org",
        "domainRegistered": "2018-11-26",
        "endpointOnVendorDomain": true,
        "terms": "https://support.uniswap.org/hc/en-us/articles/43018872248589-API-Terms-of-Use",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://developers.uniswap.org/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "Uniswap Labs is the name on the uniswap-ai licence and the blog; the API Terms of Use (support.uniswap.org, answered 403) are said in a search snippet to name Universal Navigation, Inc., which was not read first-hand.",
          "RDAP gives uniswap.org a registration date of 26 November 2018, registrar Cloudflare.",
          "app.uniswap.org/.well-known/security.txt lists a Cantina bounty and security@uniswap.org with no Expires field; uniswap.org redirects to the app.",
          "status.uniswap.org redirects to app.uniswap.org/swap, so no status page is recorded.",
          "The privacy policy at app.uniswap.org draws by script and was not read. developers.uniswap.org/robots.txt disallows /dashboard, /api/ and /oauth/, so the key dashboard was not fetched; trade-api.gateway.uniswap.org has no robots.txt (404)."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/uniswap.json",
      "live": {
        "slug": "uniswap",
        "securityTxt": {
          "url": "https://uniswap.org/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:09.573484239Z"
        },
        "updatedAt": "2026-11-04T15:53:09.573484239Z"
      }
    },
    "edges": [
      {
        "by": 16,
        "category": "schema",
        "leads": "uniswap",
        "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": "OpenAPI 3.0 file (Token Trading 1.0.0) for the Trading and LP APIs, about 33 paths with `x-internal` markers on the margin and 4337 operations (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). Operation summaries are one line, but the guides say which routing types go to `/swap`, `/order` and `/plan`, when UniswapX quotes are returned and when a 404 means change the request (14 of 20). Enums for routing types, urgency and position statuses, required fields and bounded integers such as `limit` 1 to 20 (12 of 15). Examples on every guide page and error schemas for 400, 401, 404 and 429 with a stable `errorCode` enum and per-code retry advice (14 of 15). A /v1 path, a changelog with posted and effective dates and a 30-day minimum sunset policy (15). Total 90."
        },
        "scores": {
          "a": 74,
          "b": 90
        }
      },
      {
        "by": 11,
        "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": "An API, read for response sizing. Quotes and calldata are compact and `/tokens` takes a limit; the quote can carry the swap calldata to save a call (20 of 25). `GET /orders` and `GET /swaps` poll status by id, `/swappable_tokens` and `/tokens` filter by chain and sort, with little pagination elsewhere (12 of 20). Stable `errorCode` values with a `detail` string and a `requestId`, and the docs say which codes to retry (18 of 20). No idempotency key; a swap is a signed transaction whose nonce prevents a double spend, and the docs warn about nonce collisions with pending transactions (12 of 20). Few required fields on `/quote`, defaults for slippage and urgency, but no official client library for the API and signing needs ethers.js, viem or web3.js (10 of 15). Total 72."
        },
        "scores": {
          "a": 83,
          "b": 72
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "uniswap",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a hosted service with an open-source toolkit. The UTA changelog's latest launched entry is 30 October 2026 and a preview entry 3 November; the MCP package shipped 3.3.1 on 20 September and agent-skill was pushed 30 October (30). 58 dated changelog entries since 5 August 2026 and six MCP versions since June (20). Issue trackers on the Bitget-AI repositories (11 open on agent_hub) and a support centre; replies were not checked (10 of 25). In the official MCP registry under io.github.Bitget-AI, a GitHub namespace, with official SDKs in five languages (10 of 15). CI workflow with coverage, npm provenance attestations, two runtime dependencies, no install scripts (8 of 10). 78.",
          "b": "Read as a closed hosted service. The newest changelog notice is dated 22 October 2026 (30). Notices of 20 August, 21 September and 22 October 2026, three in 90 days (20). A help form for developer support that says it won't debug integrators' code, and uniswap-ai with 6 open issues and a push on 26 October (14 of 25). Official TypeScript SDKs current (@uniswap/v4-sdk 2.4.4 with provenance) and the uniswap-ai skills, though no client for the API itself; no MCP registry entry (15). Trusted publishing with provenance on npm, CI and lint hooks on uniswap-ai (9 of 10). Total 88."
        },
        "scores": {
          "a": 78,
          "b": 88
        }
      },
      {
        "by": 10,
        "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. The API is closed under API Terms of Use that answered 403; the SDKs and uniswap-ai are MIT and the protocol contracts are open source (15 of 30). No privacy policy read (app.uniswap.org draws by script) and nothing in the docs on retention of quotes or wallet addresses (0 of 30). A published sunset policy of at least 30 days, ideally 60, with dated notices such as the Universal Router 2.0 and 2.1.1 sunset of 21 October 2026 (20). No subprocessors or data locations (0 of 20). Total 35."
        },
        "scores": {
          "a": 65,
          "b": 55
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BTG Technology Holdings Limited",
        "b": "Uniswap Labs",
        "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": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "The Trading API is a proprietary hosted service under Uniswap Labs' API Terms of Use, which we couldn't read; the SDKs and the uniswap-ai skills are MIT. Swaps execute on the open-source Uniswap protocol contracts on chain",
        "name": "Licence"
      },
      {
        "a": "14",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "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-22",
        "name": "Last release"
      },
      {
        "a": "2026-10-20",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2025-12-05",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "234 stars",
        "b": "236 stars, 154k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Uniswap Trading API scores 63.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on agent ergonomics and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Bitget or Uniswap Trading API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Bitget and Uniswap Trading API need an API key?"
      },
      {
        "answer": "Bitget runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Uniswap Trading API.",
        "question": "Can an agent call Bitget and Uniswap Trading API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 83 against 72",
          "Transparency \u0026 trust, 65 against 55"
        ],
        "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": [
          "Schema \u0026 documentation, 90 against 74",
          "Maintenance \u0026 community, 88 against 78"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where Bitget loses 8 points for them"
        ],
        "goodFor": "An agent swapping or bridging tokens from its own wallet on 21 EVM chains, or managing liquidity positions, with routing done for it.",
        "slug": "uniswap",
        "watchFor": "No official MCP server; the registry's Uniswap entries are third parties"
      }
    ],
    "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-uniswap.json",
        "title": "Bitfinex API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-uniswap"
      },
      {
        "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-okx.json",
        "title": "Bitget vs OKX API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-okx"
      },
      {
        "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-uniswap.json",
        "title": "Bithumb Open API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-uniswap.json",
        "title": "Bitstamp API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-uniswap.json",
        "title": "Bybit vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-uniswap.json",
        "title": "Crypto.com Exchange API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-uniswap.json",
        "title": "dYdX vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-uniswap.json",
        "title": "Gate vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.json",
        "title": "Gemini Exchange API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-uniswap.json",
        "title": "HTX trading API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-uniswap"
      },
      {
        "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/mexc-vs-uniswap.json",
        "title": "MEXC API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/mexc-vs-uniswap"
      },
      {
        "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-uniswap.json",
        "title": "Binance API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-uniswap.json",
        "title": "Coinbase Advanced Trade API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-uniswap.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-uniswap.json",
        "title": "Deribit vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap.json",
        "title": "Hyperliquid vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kraken-vs-uniswap.json",
        "title": "Kraken API vs Uniswap Trading API",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-uniswap"
      },
      {
        "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/uniswap-vs-upbit.json",
        "title": "Uniswap Trading API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/uniswap-vs-upbit"
      }
    ],
    "panel": null,
    "scores": [
      {
        "bitget": 40,
        "by": 2,
        "edge": "uniswap",
        "key": "reliability",
        "name": "Reliability",
        "uniswap": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 74,
        "by": 16,
        "edge": "uniswap",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "uniswap": 90,
        "weight": 13
      },
      {
        "bitget": 83,
        "by": 11,
        "edge": "bitget",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "uniswap": 72,
        "weight": 13
      },
      {
        "bitget": 62,
        "by": 1,
        "edge": "uniswap",
        "key": "security",
        "name": "Security \u0026 auth",
        "uniswap": 63,
        "weight": 14
      },
      {
        "bitget": 40,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "uniswap": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bitget": 78,
        "by": 10,
        "edge": "uniswap",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "uniswap": 88,
        "weight": 7
      },
      {
        "bitget": 65,
        "by": 10,
        "edge": "bitget",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "uniswap": 55,
        "weight": 7
      }
    ],
    "summary": "Uniswap Trading API scores 63.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on agent ergonomics and transparency \u0026 trust. 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.",
      "uniswap": "The Trading API is free, documented by an OpenAPI file with stable error codes, holds no keys since the caller signs every swap, and posts sunset notices 30 days ahead. There is no official MCP server, status page or sandbox, the key is a plain header secret at 6 requests a second, and the API terms refused our reader."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bitget-vs-uniswap",
    "json": "https://www.anchorterminal.com/compare/bitget-vs-uniswap.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bitget-vs-uniswap.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/bitget-vs-uniswap.min.md"
  },
  "markdown": "Uniswap Trading API scores 63.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on agent ergonomics and transparency \u0026 trust. Both do exchange market data.\n\n- Bitget: grade D, 53.9/100, rank #890 of 1349. Markdown https://www.anchorterminal.com/tools/bitget.md · JSON https://www.anchorterminal.com/api/v1/tools/bitget.json\n- Uniswap Trading API: grade B, 63.3/100, rank #446 of 1349. Markdown https://www.anchorterminal.com/tools/uniswap.md · JSON https://www.anchorterminal.com/api/v1/tools/uniswap.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 72\n- Transparency \u0026 trust, 65 against 55\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### Uniswap Trading API (B)\n\nGood for: An agent swapping or bridging tokens from its own wallet on 21 EVM chains, or managing liquidity positions, with routing done for it.\n\nAhead on:\n- Schema \u0026 documentation, 90 against 74\n- Maintenance \u0026 community, 88 against 78\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: No official MCP server; the registry's Uniswap entries are third parties\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Uniswap Trading API +16\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- Uniswap Trading API (90): OpenAPI 3.0 file (Token Trading 1.0.0) for the Trading and LP APIs, about 33 paths with `x-internal` markers on the margin and 4337 operations (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). Operation summaries are one line, but the guides say which routing types go to `/swap`, `/order` and `/plan`, when UniswapX quotes are returned and when a 404 means change the request (14 of 20). Enums for routing types, urgency and position statuses, required fields and bounded integers such as `limit` 1 to 20 (12 of 15). Examples on every guide page and error schemas for 400, 401, 404 and 429 with a stable `errorCode` enum and per-code retry advice (14 of 15). A /v1 path, a changelog with posted and effective dates and a 30-day minimum sunset policy (15). Total 90.\n\n### Agent ergonomics: Bitget +11\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- Uniswap Trading API (72): An API, read for response sizing. Quotes and calldata are compact and `/tokens` takes a limit; the quote can carry the swap calldata to save a call (20 of 25). `GET /orders` and `GET /swaps` poll status by id, `/swappable_tokens` and `/tokens` filter by chain and sort, with little pagination elsewhere (12 of 20). Stable `errorCode` values with a `detail` string and a `requestId`, and the docs say which codes to retry (18 of 20). No idempotency key; a swap is a signed transaction whose nonce prevents a double spend, and the docs warn about nonce collisions with pending transactions (12 of 20). Few required fields on `/quote`, defaults for slippage and urgency, but no official client library for the API and signing needs ethers.js, viem or web3.js (10 of 15). Total 72.\n\n### Maintenance \u0026 community: Uniswap Trading API +10\n\n- Bitget (78): Read as a hosted service with an open-source toolkit. The UTA changelog's latest launched entry is 30 October 2026 and a preview entry 3 November; the MCP package shipped 3.3.1 on 20 September and agent-skill was pushed 30 October (30). 58 dated changelog entries since 5 August 2026 and six MCP versions since June (20). Issue trackers on the Bitget-AI repositories (11 open on agent_hub) and a support centre; replies were not checked (10 of 25). In the official MCP registry under io.github.Bitget-AI, a GitHub namespace, with official SDKs in five languages (10 of 15). CI workflow with coverage, npm provenance attestations, two runtime dependencies, no install scripts (8 of 10). 78.\n- Uniswap Trading API (88): Read as a closed hosted service. The newest changelog notice is dated 22 October 2026 (30). Notices of 20 August, 21 September and 22 October 2026, three in 90 days (20). A help form for developer support that says it won't debug integrators' code, and uniswap-ai with 6 open issues and a push on 26 October (14 of 25). Official TypeScript SDKs current (@uniswap/v4-sdk 2.4.4 with provenance) and the uniswap-ai skills, though no client for the API itself; no MCP registry entry (15). Trusted publishing with provenance on npm, CI and lint hooks on uniswap-ai (9 of 10). Total 88.\n\n### Transparency \u0026 trust: Bitget +10\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- Uniswap Trading API (55): The editorial half. The API is closed under API Terms of Use that answered 403; the SDKs and uniswap-ai are MIT and the protocol contracts are open source (15 of 30). No privacy policy read (app.uniswap.org draws by script) and nothing in the docs on retention of quotes or wallet addresses (0 of 30). A published sunset policy of at least 30 days, ideally 60, with dated notices such as the Universal Router 2.0 and 2.1.1 sunset of 21 October 2026 (20). No subprocessors or data locations (0 of 20). Total 35.\n\n## Score by category\n\n| Category | Weight | Bitget | Uniswap Trading API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 42 | Uniswap Trading API +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 90 | Uniswap Trading API +16 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 72 | Bitget +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 62 | 63 | Uniswap Trading API +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 88 | Uniswap Trading API +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 55 | Bitget +10 |\n| Negative events | ≤15 | -8 | 0 | |\n| **Total** | | **53.9 · D** | **63.3 · B** | |\n\n## Facts side by side\n\n| Fact | Bitget | Uniswap Trading API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BTG Technology Holdings Limited | Uniswap Labs |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | API key | API key |\n| Pricing | Pay per use | Free |\n| x402 | no | no |\n| Licence | none | The Trading API is a proprietary hosted service under Uniswap Labs' API Terms of Use, which we couldn't read; the SDKs and the uniswap-ai skills are MIT. Swaps execute on the open-source Uniswap protocol contracts on chain |\n| Tools exposed | 14 | 0 |\n| Read-only variant documented | yes | no |\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-22 |\n| Terms last updated | 2026-10-20 | couldn't be read |\n| Privacy policy last updated | 2025-12-05 | no document linked |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | not found in the text | couldn't be read |\n| Terms or service can change without notice | yes | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 234 stars | 236 stars, 154k 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**Uniswap Trading API.** The Trading API is free, documented by an OpenAPI file with stable error codes, holds no keys since the caller signs every swap, and posts sunset notices 30 days ahead. There is no official MCP server, status page or sandbox, the key is a plain header secret at 6 requests a second, and the API terms refused our reader.\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### Uniswap Trading API\n\n1. Call `/check_approval` first, then `/quote`; if `permitData` is non-null sign it as EIP-712 and send `signature` and `permitData` together to `/swap` or `/order`, never one without the other\n2. Route on the quote's `routing`: `CLASSIC`, `WRAP`, `UNWRAP` and `BRIDGE` go to `/swap`, `DUTCH_V2`, `DUTCH_V3` and `PRIORITY` to `/order`, `CHAINED` to `/plan`\n3. Refresh any quote older than 30 seconds before broadcasting, and on 429 pause every request from the key before retrying\n4. Retry unchanged only on `UpstreamTimeoutError`; `NoRouteFoundError` and `QuoteAmountTooLowError` need a different amount, token or `protocols` list\n5. Send `X-Agent-Info` with `decision_origin: autonomous` and keep `x-api-key` server-side\n\n## Questions\n\n### Which is better for AI agents, Bitget or Uniswap Trading API?\n\nUniswap Trading API scores 63.3 (B) on agent readiness against Bitget's 53.9 (D), and leads in 4 of 7 scored categories. Bitget leads on agent ergonomics and transparency \u0026 trust.\n\n### Do Bitget and Uniswap Trading API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Bitget and Uniswap Trading API without installing anything?\n\nBitget runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Uniswap Trading API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bitget-vs-uniswap.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bitget-vs-uniswap.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bitget\", \"b\": \"uniswap\"}`. From a terminal: `anchor compare bitget uniswap`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bitget.json and https://www.anchorterminal.com/api/v1/tools/uniswap.json\n\n## Other comparisons with Bitget or Uniswap Trading API\n\n- [Bitfinex API vs Bitget](https://www.anchorterminal.com/compare/bitfinex-vs-bitget.md)\n- [Bitfinex API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitfinex-vs-uniswap.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 OKX API](https://www.anchorterminal.com/compare/bitget-vs-okx.md)\n- [Bitget vs Upbit Open API](https://www.anchorterminal.com/compare/bitget-vs-upbit.md)\n- [Bithumb Open API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bithumb-vs-uniswap.md)\n- [Bitstamp API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitstamp-vs-uniswap.md)\n- [Bybit vs Uniswap Trading API](https://www.anchorterminal.com/compare/bybit-vs-uniswap.md)\n- [Crypto.com Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-uniswap.md)\n- [dYdX vs Uniswap Trading API](https://www.anchorterminal.com/compare/dydx-vs-uniswap.md)\n- [Gate vs Uniswap Trading API](https://www.anchorterminal.com/compare/gate-io-vs-uniswap.md)\n- [Gemini Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.md)\n- [HTX trading API vs Uniswap Trading API](https://www.anchorterminal.com/compare/htx-vs-uniswap.md)\n- [KuCoin vs Uniswap Trading API](https://www.anchorterminal.com/compare/kucoin-vs-uniswap.md)\n- [MEXC API vs Uniswap Trading API](https://www.anchorterminal.com/compare/mexc-vs-uniswap.md)\n- [Binance API vs Bitget](https://www.anchorterminal.com/compare/binance-vs-bitget.md)\n- [Binance API vs Uniswap Trading API](https://www.anchorterminal.com/compare/binance-vs-uniswap.md)\n- [Coinbase Advanced Trade API vs Uniswap Trading API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-uniswap.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Uniswap Trading API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-uniswap.md)\n- [Deribit vs Uniswap Trading API](https://www.anchorterminal.com/compare/deribit-vs-uniswap.md)\n- [Hyperliquid vs Uniswap Trading API](https://www.anchorterminal.com/compare/hyperliquid-vs-uniswap.md)\n- [Kraken API vs Uniswap Trading API](https://www.anchorterminal.com/compare/kraken-vs-uniswap.md)\n- [OKX API vs Uniswap Trading API](https://www.anchorterminal.com/compare/okx-vs-uniswap.md)\n- [Uniswap Trading API vs Upbit Open API](https://www.anchorterminal.com/compare/uniswap-vs-upbit.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 Uniswap Trading API",
        "url": ""
      }
    ],
    "description": "Uniswap Trading scores 63.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",
      "Uniswap Trading API B 63.3",
      "scores"
    ],
    "h1": "Bitget vs Uniswap Trading API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/bitget-vs-uniswap",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bitget vs Uniswap Trading for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/bitget-vs-uniswap"
  },
  "tokens": {
    "markdown": 4400,
    "slim": 2230
  },
  "version": 1
}
