{
  "data": {
    "a": {
      "slug": "kraken",
      "name": "Kraken API",
      "vendor": "Payward, Inc.",
      "vendorUrl": "https://docs.kraken.com/api/",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Kraken's exchange APIs cover spot, tokenised US stocks, forex and futures over REST, WebSocket and FIX, with rate limits by client tier, a self-service futures demo and kraken-cli, an open-source CLI whose kraken-mcp binary is a local MCP server.",
      "url": "https://www.anchorterminal.com/tools/kraken",
      "markdownUrl": "https://www.anchorterminal.com/tools/kraken.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/kraken.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/kraken.json",
      "dns": "kraken.grade.anchorterminal.com",
      "repo": "https://github.com/krakenfx/kraken-cli",
      "license": "Proprietary hosted service under Kraken's Global Terms of Service (30 October 2026). kraken-cli, which carries the kraken-mcp server, is MIT",
      "transports": [
        "stdio"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "Spot API key and private key, signed with HMAC-SHA512 over the path, nonce and POST data, sent as API-Key and API-Sign. Permissions per key are Query Funds, Deposit Funds, Withdraw Funds, Query Open Orders \u0026 Trades, Query Closed Orders \u0026 Trades, Modify Orders, Cancel/Close Orders, Query Ledger Entries and Export Data, with optional Key Expiration, IP Address Restriction, a custom nonce window and a WebSocket interface setting. Futures keys are separate. kraken auth login signs in with OAuth (authorisation code with PKCE) in a browser and saves a restricted spot key with no withdrawal rights that expires after at most 90 days, or a read-only one with --read-only (https://support.kraken.com/hc/en-us/articles/360000919966, https://github.com/krakenfx/kraken-cli, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API costs nothing to call. Kraken Pro spot fees at the lowest 30-day volume tier are 0.40 per cent maker and 0.80 per cent taker, stablecoin, pegged token and FX pairs 0.20 per cent each way, and futures 0.02 per cent maker and 0.05 per cent taker. Public market data, paper trading in kraken-cli and the futures demo need no account.",
      "priceSummary": "0.4% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the CLI or the MCP docs (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": 152,
      "popularity": {
        "githubStars": 795,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.kraken.com/api/",
      "llmsTxt": "https://raw.githubusercontent.com/krakenfx/kraken-cli/main/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",
        "oauth",
        "mcp",
        "cli",
        "llms-txt",
        "status-page",
        "bug-bounty",
        "rust",
        "go",
        "usage-priced",
        "no-card",
        "mit"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71,
        "grade": "BB",
        "agentReady": true,
        "rank": 159,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 81,
          "payments": 40,
          "reliability": 67,
          "schema": 80,
          "security": 80,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Kraken pairs a documented REST, WebSocket and FIX API with the open-source kraken-cli, whose kraken-mcp server gates 33 dangerous tools behind approval and signs in by OAuth with a no-withdrawal key. Spot has no self-service sandbox, no OpenAPI file was found, and a 59-minute connectivity outage hit every interface on 30 October 2026.",
        "bestFor": "An agent that trades spot, xStocks, forex or futures on a person's Kraken account from a local machine, with paper trading to test first and an approval gate on live orders.",
        "strengths": [
          "Official local MCP server with 152 typed tools in services, destructive_hint on dangerous tools and an elicitation approval before each unless disabled",
          "OAuth sign-in from the CLI mints a restricted spot key with no withdrawal rights that expires within 90 days, or a read-only key",
          "Rate limits published with numbers by client tier for REST and the matching engine, shared across REST, WebSocket and FIX",
          "Fees published without login, 0.40 per cent maker and 0.80 per cent taker at the lowest Pro tier, 0.02 and 0.05 on futures",
          "Dated changelog of 120 entries with deprecations announced by date, a Statuspage site with API components and a valid security.txt"
        ],
        "weaknesses": [
          "No self-service spot sandbox; the spot UAT environment is on request through an account manager, and paper trading lives in the CLI",
          "No OpenAPI file was found for the REST API; the machine-readable contract is the CLI's tool catalogue",
          "Spot and derivatives clients could not connect or submit orders on any interface for 59 minutes on 30 October 2026",
          "The CLI's feedback tool can upload a local file it names with no approval step, so the docs say to drop it for agents reading untrusted input",
          "The terms bar bots, scripts and third-party applications on Kraken's content without written consent, alongside the documented API"
        ],
        "agentNotes": [
          "Start kraken-mcp with -s market,paper,feedback or the default services; add trade only with a least-privilege key, and never pass --allow-dangerous on an agent that reads untrusted input",
          "Ask the person to run kraken auth login in their own terminal; it needs a browser and saves a no-withdrawal key that expires in 90 days at most",
          "Send a fresh --cl-ord-id on each order and run it with --validate first; after a network error look the order up before sending it again",
          "Keep the nonce strictly increasing per key and stay under the tier's counter, since EAPI:Rate limit exceeded has no Retry-After header",
          "Test strategies in a paper workspace, which fills at live prices with no account, before a live workspace"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 81,
          "payments": 40,
          "reliability": 67,
          "schema": 80,
          "security": 80,
          "transparency": 36
        },
        "provenanceScore": 94,
        "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": "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/krakenfx/kraken-cli/releases/latest/download/kraken-cli-installer.sh | sh",
        "http": "curl https://api.kraken.com/0/public/Ticker?pair=XBTUSD",
        "claudeCode": "claude mcp add --scope user kraken -- kraken-mcp -s market,paper,feedback",
        "config": {
          "mcpServers": {
            "kraken": {
              "args": [
                "-s",
                "market,paper,feedback"
              ],
              "command": "kraken-mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/exchange.spot-trading",
        "tool": "https://letme.dev/kraken"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Spot trade, maker, tier 1",
          "unit": "pct",
          "usd": 0.4,
          "note": "Kraken Pro, under $10,000 30-day volume"
        },
        {
          "item": "Spot trade, taker, tier 1",
          "unit": "pct",
          "usd": 0.8,
          "note": "Kraken Pro, under $10,000 30-day volume"
        },
        {
          "item": "Futures trade, maker, tier 1",
          "unit": "pct",
          "usd": 0.02,
          "note": "under $5M 30-day volume"
        },
        {
          "item": "Futures trade, taker, tier 1",
          "unit": "pct",
          "usd": 0.05,
          "note": "under $5M 30-day volume"
        }
      ],
      "provenance": {
        "legalEntity": "Payward, Inc.",
        "domain": "kraken.com",
        "domainRegistered": "2000-04-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.kraken.com/legal/global-terms",
        "privacy": "https://www.kraken.com/legal/privacy",
        "statusPage": "https://status.kraken.com",
        "changelog": "https://docs.kraken.com/api/docs/change-log",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "The Global Terms of Service (last updated 30 October 2026) name Payward Interactive, Inc., Payward Ltd., Bit Trade Pty Limited and Payward Trading Ltd as contracting entities by region under California law; the site footer is © 2011 to 2026 Payward, Inc. The privacy notice was linked from the legal hub and not read.",
          "RDAP gives kraken.com a registration date of 3 April 2000, before the exchange's 2011 founding.",
          "https://www.kraken.com/.well-known/security.txt names bugbounty@kraken.com and a bug bounty policy page on kraken.com, expiring 13 February 2027.",
          "www.kraken.com, docs.kraken.com and support.kraken.com robots.txt disallow only /u/ and /lp/ (docs allows all but /cdn-cgi/ and /_next/).",
          "status.kraken.com is a Statuspage site; its history page renders by script, so incidents were read from its incidents.json feed, which reached back to 4 September 2026."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/kraken.json",
      "live": {
        "slug": "kraken",
        "vendorStatus": {
          "page": "https://status.kraken.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-11-04T19:31:42.054244668Z"
        },
        "securityTxt": {
          "url": "https://kraken.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-02-13T00:00:00.000Z",
          "checkedAt": "2026-11-04T15:54:35.804472383Z"
        },
        "updatedAt": "2026-11-04T19:31:42.054244668Z"
      }
    },
    "answer": "Kraken API scores 71 (BB) on agent readiness against Uniswap Trading API's 63.3 (B), and leads in 4 of 7 scored categories. Uniswap Trading API leads on schema \u0026 documentation and maintenance \u0026 community.",
    "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": 25,
        "category": "reliability",
        "leads": "kraken",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines on the spot API. status.kraken.com is a Statuspage site with REST, WebSocket and FIX components (20). The incidents feed read covers 4 September to 3 November 2026. On 30 October spot and derivatives clients could not connect or submit orders across web, mobile, REST, WebSocket and FIX for 59 minutes 39 seconds, rated minor by Kraken; on 28 October some FIX clients were rejected on reconnection for 1 hour 59 minutes while other interfaces worked; the futures engine was degraded for 3 minutes on 13 October. A whole-exchange order outage 21 seconds short of an hour is read as one major (10 of 30). Numeric limits per key by tier and per pair for the matching engine (15). EAPI:Rate limit exceeded and EService:Throttled with a retry timestamp, a client order id and a validate flag on orders, but no Retry-After header (12 of 15). No SLA (0). Generally available (10). 20 + 10 + 15 + 12 + 0 + 10 = 67.",
          "b": "Read with the hosted lines on the Trading API. status.uniswap.org redirects to the swap app and the docs link no status page (0). No readable history (5). Rate limit documented as 6 requests a second per key (15). The errors page says to pause all requests from the key on 429, retry 500 and 503 with backoff and refresh quotes after 30 seconds; swaps are signed transactions, so idempotency rests on the chain nonce (12 of 15). No SLA (0). The API is generally available; Guidestar routing is a beta notice (10). 0 + 5 + 15 + 12 + 0 + 10 = 42."
        },
        "scores": {
          "a": 67,
          "b": 42
        }
      },
      {
        "by": 17,
        "category": "security",
        "leads": "kraken",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Keys with nine named permissions, optional expiry, IP restriction and nonce window, plus an OAuth sign-in from the CLI (authorisation code with PKCE, public client) that mints a no-withdrawal key expiring within 90 days or a read-only key (30). Read-only and no-withdrawal keys, position limits and pair allowlists in account settings, and MCP approval prompts for 33 dangerous tools (18 of 20). The API returns no untrusted content; the CLI docs warn that the feedback tool uploads a local file without approval (10). Keys and their permissions are listed in settings and ledgers record activity, but no per-call log for the operator was found (6 of 15). A valid security.txt, a bug bounty policy page, SECURITY.md and a secure SDLC workflow in the CLI; certifications not read (16 of 20). 30 + 18 + 10 + 6 + 16 = 80.",
          "b": "A single `x-api-key` header, no scopes, no IP allow-list; revocation and rotation happen in a dashboard robots.txt disallows, so unchecked; nothing in a URL (18 of 30). The API never holds keys or funds, every value transfer needs the caller's signature on `permitData` and the transaction, and the swapper sets slippage (16 of 20). The API returns routes and token lists, not untrusted content (10). The dashboard presumably shows key usage; not read, and no per-call log is documented (5 of 15). security.txt on app.uniswap.org with a Cantina bounty and security@uniswap.org, protocol audits in the docs; no SOC 2 or disclosure timeline read (14 of 20). Total 63."
        },
        "scores": {
          "a": 80,
          "b": 63
        }
      },
      {
        "by": 10,
        "category": "schema",
        "leads": "uniswap",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI file was found for the REST API in the docs read; the CLI's agents/tool-catalog.json gives JSON Schema inputs for all 188 commands and the 152 MCP tools (15 of 25). The docs serve Markdown twins such as quickstart.md and the CLI ships llms.txt, AGENTS.md and CONTEXT.md (10). Endpoint pages and guides on order lifecycle, errors and rate limits say what each call does, with less on when not to use one (15 of 20). Enums for order types, time in force and flags, and enums and required fields in the tool catalogue (12 of 15). Python, Node.js and cURL examples, an errors guide and the CLI's error-catalog.json with retry guidance (13 of 15). A changelog of 120 dated entries with deprecations dated (15). 15 + 10 + 15 + 12 + 13 + 15 = 80.",
          "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": 80,
          "b": 90
        }
      },
      {
        "by": 10,
        "category": "transparency",
        "leads": "kraken",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The editorial half. A closed service with clear terms naming regional Payward entities under California law; the CLI is MIT (15 of 30). The privacy notice was not read (5 of 30). The changelog dates deprecations and the terms carry a last-updated date (16 of 20). No subprocessor or data-location statement read (0 of 20). 15 + 5 + 16 + 0 = 36.",
          "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
        }
      },
      {
        "by": 7,
        "category": "ergonomics",
        "leads": "kraken",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "The MCP server loads services with -s, defaults to no live trading, and its 152 tool definitions average about 520 characters; the REST API takes count, limit and pair filters but has no field selection (18 of 25). Cursor pagination on ledgers and trades since 30 September and 6 October 2026, with ofs deprecated (17 of 20). Prefixed error strings such as EOrder:Rate limit exceeded and EAPI:Invalid nonce, and the CLI's error catalogue says which to retry (17 of 20). cl_ord_id and validate on orders, destructive_hint and elicitation on dangerous MCP tools, no idempotency key on REST (16 of 20). An official Rust SDK at 5 stars, a Go module and example clients, HMAC-SHA512 signing with a strict nonce (11 of 15). 18 + 17 + 17 + 16 + 11 = 79.",
          "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": 79,
          "b": 72
        }
      },
      {
        "by": 7,
        "category": "maintenance",
        "leads": "uniswap",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed service with an open-source client. Changelog entry of 27 October 2026 and kraken-cli v0.5.1 on 29 October (30). Fourteen changelog entries since 19 August 2026 and CLI tags on 6 and 7 August and 28 and 29 October (20). A public changelog, api@kraken.com, a status page and a CLI repository merging pull requests at the end of October; issue replies not read (11 of 15). An official Rust SDK pushed in October 2026 and a Go module from January; the MCP server is not in the official registry (12 of 15). The CLI has release and secure SDLC workflows, deny.toml and a pinned toolchain; the SDK's CI not read (8 of 10). 30 + 20 + 11 + 12 + 8 = 81.",
          "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": 81,
          "b": 88
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Payward, Inc.",
        "b": "Uniswap Labs",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under Kraken's Global Terms of Service (30 October 2026). kraken-cli, which carries the kraken-mcp server, is MIT",
        "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": "152",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-29",
        "b": "2026-10-22",
        "name": "Last release"
      },
      {
        "a": "2026-10-30",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-21",
        "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": "yes",
        "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": "795 stars",
        "b": "236 stars, 154k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Kraken API scores 71 (BB) on agent readiness against Uniswap Trading API's 63.3 (B), and leads in 4 of 7 scored categories. Uniswap Trading API leads on schema \u0026 documentation and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Kraken API or Uniswap Trading API?"
      },
      {
        "answer": "Kraken API takes an API key or an OAuth sign-in. Uniswap Trading API needs an API key.",
        "question": "Do Kraken API and Uniswap Trading API need an API key?"
      },
      {
        "answer": "Kraken API runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for Uniswap Trading API.",
        "question": "Can an agent call Kraken API and Uniswap Trading API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 67 against 42",
          "Agent ergonomics, 79 against 72",
          "Security \u0026 auth, 80 against 63",
          "Transparency \u0026 trust, 65 against 55"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "An agent that trades spot, xStocks, forex or futures on a person's Kraken account from a local machine, with paper trading to test first and an approval gate on live orders.",
        "slug": "kraken",
        "watchFor": "No self-service spot sandbox; the spot UAT environment is on request through an account manager, and paper trading lives in the CLI"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 90 against 80",
          "Maintenance \u0026 community, 88 against 81"
        ],
        "also": null,
        "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.spot-trading",
      "name": "Exchange spot trading"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-kraken.json",
        "title": "Bitfinex API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Bitget vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bitget-vs-kraken"
      },
      {
        "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/bithumb-vs-kraken.json",
        "title": "Bithumb Open API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Bitstamp API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Bybit vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Crypto.com Exchange API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Gate vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Gemini Exchange API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "HTX trading API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Binance API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Coinbase Advanced Trade API vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-kraken"
      },
      {
        "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-kraken.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-kraken"
      },
      {
        "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-kucoin.json",
        "title": "Kraken API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kraken-vs-mexc.json",
        "title": "Kraken API vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-mexc"
      },
      {
        "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/kraken-vs-upbit.json",
        "title": "Kraken API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/kraken-vs-upbit"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-kraken.json",
        "title": "Deribit vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-kraken"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-kraken.json",
        "title": "dYdX vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-kraken"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperliquid-vs-kraken.json",
        "title": "Hyperliquid vs Kraken API",
        "url": "https://www.anchorterminal.com/compare/hyperliquid-vs-kraken"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 25,
        "edge": "kraken",
        "key": "reliability",
        "kraken": 67,
        "name": "Reliability",
        "uniswap": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "uniswap",
        "key": "schema",
        "kraken": 80,
        "name": "Schema \u0026 documentation",
        "uniswap": 90,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "kraken",
        "key": "ergonomics",
        "kraken": 79,
        "name": "Agent ergonomics",
        "uniswap": 72,
        "weight": 13
      },
      {
        "by": 17,
        "edge": "kraken",
        "key": "security",
        "kraken": 80,
        "name": "Security \u0026 auth",
        "uniswap": 63,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "kraken": 40,
        "name": "Payments \u0026 pricing",
        "uniswap": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "uniswap",
        "key": "maintenance",
        "kraken": 81,
        "name": "Maintenance \u0026 community",
        "uniswap": 88,
        "weight": 7
      },
      {
        "by": 10,
        "edge": "kraken",
        "key": "transparency",
        "kraken": 65,
        "name": "Transparency \u0026 trust",
        "uniswap": 55,
        "weight": 7
      }
    ],
    "summary": "Kraken API scores 71 (BB) on agent readiness against Uniswap Trading API's 63.3 (B), and leads in 4 of 7 scored categories. Uniswap Trading API leads on schema \u0026 documentation and maintenance \u0026 community. Both do exchange spot trading.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "kraken": "Kraken pairs a documented REST, WebSocket and FIX API with the open-source kraken-cli, whose kraken-mcp server gates 33 dangerous tools behind approval and signs in by OAuth with a no-withdrawal key. Spot has no self-service sandbox, no OpenAPI file was found, and a 59-minute connectivity outage hit every interface on 30 October 2026.",
      "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/kraken-vs-uniswap",
    "json": "https://www.anchorterminal.com/compare/kraken-vs-uniswap.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/kraken-vs-uniswap.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/kraken-vs-uniswap.min.md"
  },
  "markdown": "Kraken API scores 71 (BB) on agent readiness against Uniswap Trading API's 63.3 (B), and leads in 4 of 7 scored categories. Uniswap Trading API leads on schema \u0026 documentation and maintenance \u0026 community. Both do exchange spot trading.\n\n- Kraken API: grade BB, 71/100, rank #159 of 1349. Markdown https://www.anchorterminal.com/tools/kraken.md · JSON https://www.anchorterminal.com/api/v1/tools/kraken.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### Kraken API (BB)\n\nGood for: An agent that trades spot, xStocks, forex or futures on a person's Kraken account from a local machine, with paper trading to test first and an approval gate on live orders.\n\nAhead on:\n- Reliability, 67 against 42\n- Agent ergonomics, 79 against 72\n- Security \u0026 auth, 80 against 63\n- Transparency \u0026 trust, 65 against 55\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: No self-service spot sandbox; the spot UAT environment is on request through an account manager, and paper trading lives in the CLI\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 80\n- Maintenance \u0026 community, 88 against 81\n\nWatch for: No official MCP server; the registry's Uniswap entries are third parties\n\n\n## Why the edge\n\n### Reliability: Kraken API +25\n\n- Kraken API (67): Read with the hosted lines on the spot API. status.kraken.com is a Statuspage site with REST, WebSocket and FIX components (20). The incidents feed read covers 4 September to 3 November 2026. On 30 October spot and derivatives clients could not connect or submit orders across web, mobile, REST, WebSocket and FIX for 59 minutes 39 seconds, rated minor by Kraken; on 28 October some FIX clients were rejected on reconnection for 1 hour 59 minutes while other interfaces worked; the futures engine was degraded for 3 minutes on 13 October. A whole-exchange order outage 21 seconds short of an hour is read as one major (10 of 30). Numeric limits per key by tier and per pair for the matching engine (15). EAPI:Rate limit exceeded and EService:Throttled with a retry timestamp, a client order id and a validate flag on orders, but no Retry-After header (12 of 15). No SLA (0). Generally available (10). 20 + 10 + 15 + 12 + 0 + 10 = 67.\n- Uniswap Trading API (42): Read with the hosted lines on the Trading API. status.uniswap.org redirects to the swap app and the docs link no status page (0). No readable history (5). Rate limit documented as 6 requests a second per key (15). The errors page says to pause all requests from the key on 429, retry 500 and 503 with backoff and refresh quotes after 30 seconds; swaps are signed transactions, so idempotency rests on the chain nonce (12 of 15). No SLA (0). The API is generally available; Guidestar routing is a beta notice (10). 0 + 5 + 15 + 12 + 0 + 10 = 42.\n\n### Security \u0026 auth: Kraken API +17\n\n- Kraken API (80): Keys with nine named permissions, optional expiry, IP restriction and nonce window, plus an OAuth sign-in from the CLI (authorisation code with PKCE, public client) that mints a no-withdrawal key expiring within 90 days or a read-only key (30). Read-only and no-withdrawal keys, position limits and pair allowlists in account settings, and MCP approval prompts for 33 dangerous tools (18 of 20). The API returns no untrusted content; the CLI docs warn that the feedback tool uploads a local file without approval (10). Keys and their permissions are listed in settings and ledgers record activity, but no per-call log for the operator was found (6 of 15). A valid security.txt, a bug bounty policy page, SECURITY.md and a secure SDLC workflow in the CLI; certifications not read (16 of 20). 30 + 18 + 10 + 6 + 16 = 80.\n- Uniswap Trading API (63): A single `x-api-key` header, no scopes, no IP allow-list; revocation and rotation happen in a dashboard robots.txt disallows, so unchecked; nothing in a URL (18 of 30). The API never holds keys or funds, every value transfer needs the caller's signature on `permitData` and the transaction, and the swapper sets slippage (16 of 20). The API returns routes and token lists, not untrusted content (10). The dashboard presumably shows key usage; not read, and no per-call log is documented (5 of 15). security.txt on app.uniswap.org with a Cantina bounty and security@uniswap.org, protocol audits in the docs; no SOC 2 or disclosure timeline read (14 of 20). Total 63.\n\n### Schema \u0026 documentation: Uniswap Trading API +10\n\n- Kraken API (80): No OpenAPI file was found for the REST API in the docs read; the CLI's agents/tool-catalog.json gives JSON Schema inputs for all 188 commands and the 152 MCP tools (15 of 25). The docs serve Markdown twins such as quickstart.md and the CLI ships llms.txt, AGENTS.md and CONTEXT.md (10). Endpoint pages and guides on order lifecycle, errors and rate limits say what each call does, with less on when not to use one (15 of 20). Enums for order types, time in force and flags, and enums and required fields in the tool catalogue (12 of 15). Python, Node.js and cURL examples, an errors guide and the CLI's error-catalog.json with retry guidance (13 of 15). A changelog of 120 dated entries with deprecations dated (15). 15 + 10 + 15 + 12 + 13 + 15 = 80.\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### Transparency \u0026 trust: Kraken API +10\n\n- Kraken API (65): The editorial half. A closed service with clear terms naming regional Payward entities under California law; the CLI is MIT (15 of 30). The privacy notice was not read (5 of 30). The changelog dates deprecations and the terms carry a last-updated date (16 of 20). No subprocessor or data-location statement read (0 of 20). 15 + 5 + 16 + 0 = 36.\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### Agent ergonomics: Kraken API +7\n\n- Kraken API (79): The MCP server loads services with -s, defaults to no live trading, and its 152 tool definitions average about 520 characters; the REST API takes count, limit and pair filters but has no field selection (18 of 25). Cursor pagination on ledgers and trades since 30 September and 6 October 2026, with ofs deprecated (17 of 20). Prefixed error strings such as EOrder:Rate limit exceeded and EAPI:Invalid nonce, and the CLI's error catalogue says which to retry (17 of 20). cl_ord_id and validate on orders, destructive_hint and elicitation on dangerous MCP tools, no idempotency key on REST (16 of 20). An official Rust SDK at 5 stars, a Go module and example clients, HMAC-SHA512 signing with a strict nonce (11 of 15). 18 + 17 + 17 + 16 + 11 = 79.\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 +7\n\n- Kraken API (81): Read as a closed service with an open-source client. Changelog entry of 27 October 2026 and kraken-cli v0.5.1 on 29 October (30). Fourteen changelog entries since 19 August 2026 and CLI tags on 6 and 7 August and 28 and 29 October (20). A public changelog, api@kraken.com, a status page and a CLI repository merging pull requests at the end of October; issue replies not read (11 of 15). An official Rust SDK pushed in October 2026 and a Go module from January; the MCP server is not in the official registry (12 of 15). The CLI has release and secure SDLC workflows, deny.toml and a pinned toolchain; the SDK's CI not read (8 of 10). 30 + 20 + 11 + 12 + 8 = 81.\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## Score by category\n\n| Category | Weight | Kraken API | Uniswap Trading API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 67 | 42 | Kraken API +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 90 | Uniswap Trading API +10 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 72 | Kraken API +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 80 | 63 | Kraken API +17 |\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) | 81 | 88 | Uniswap Trading API +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 55 | Kraken API +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **71 · BB** | **63.3 · B** | |\n\n## Facts side by side\n\n| Fact | Kraken API | Uniswap Trading API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Payward, Inc. | Uniswap Labs |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Free |\n| x402 | no | no |\n| Licence | Proprietary hosted service under Kraken's Global Terms of Service (30 October 2026). kraken-cli, which carries the kraken-mcp server, is MIT | 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 | 152 | 0 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-29 | 2026-10-22 |\n| Terms last updated | 2026-10-30 | couldn't be read |\n| Privacy policy last updated | 2026-10-21 | 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 | yes | 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 | 795 stars | 236 stars, 154k npm/wk |\n\n## Verdicts\n\n**Kraken API.** Kraken pairs a documented REST, WebSocket and FIX API with the open-source kraken-cli, whose kraken-mcp server gates 33 dangerous tools behind approval and signs in by OAuth with a no-withdrawal key. Spot has no self-service sandbox, no OpenAPI file was found, and a 59-minute connectivity outage hit every interface on 30 October 2026.\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### Kraken API\n\n1. Start kraken-mcp with -s market,paper,feedback or the default services; add trade only with a least-privilege key, and never pass --allow-dangerous on an agent that reads untrusted input\n2. Ask the person to run kraken auth login in their own terminal; it needs a browser and saves a no-withdrawal key that expires in 90 days at most\n3. Send a fresh --cl-ord-id on each order and run it with --validate first; after a network error look the order up before sending it again\n4. Keep the nonce strictly increasing per key and stay under the tier's counter, since EAPI:Rate limit exceeded has no Retry-After header\n5. Test strategies in a paper workspace, which fills at live prices with no account, before a live workspace\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, Kraken API or Uniswap Trading API?\n\nKraken API scores 71 (BB) on agent readiness against Uniswap Trading API's 63.3 (B), and leads in 4 of 7 scored categories. Uniswap Trading API leads on schema \u0026 documentation and maintenance \u0026 community.\n\n### Do Kraken API and Uniswap Trading API need an API key?\n\nKraken API takes an API key or an OAuth sign-in. Uniswap Trading API needs an API key.\n\n### Can an agent call Kraken API and Uniswap Trading API without installing anything?\n\nKraken API 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/kraken-vs-uniswap.json, and with the fewest tokens: https://www.anchorterminal.com/compare/kraken-vs-uniswap.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"kraken\", \"b\": \"uniswap\"}`. From a terminal: `anchor compare kraken uniswap`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/kraken.json and https://www.anchorterminal.com/api/v1/tools/uniswap.json\n\n## Other comparisons with Kraken API or Uniswap Trading API\n\n- [Bitfinex API vs Kraken API](https://www.anchorterminal.com/compare/bitfinex-vs-kraken.md)\n- [Bitfinex API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitfinex-vs-uniswap.md)\n- [Bitget vs Kraken API](https://www.anchorterminal.com/compare/bitget-vs-kraken.md)\n- [Bitget vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitget-vs-uniswap.md)\n- [Bithumb Open API vs Kraken API](https://www.anchorterminal.com/compare/bithumb-vs-kraken.md)\n- [Bithumb Open API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bithumb-vs-uniswap.md)\n- [Bitstamp API vs Kraken API](https://www.anchorterminal.com/compare/bitstamp-vs-kraken.md)\n- [Bitstamp API vs Uniswap Trading API](https://www.anchorterminal.com/compare/bitstamp-vs-uniswap.md)\n- [Bybit vs Kraken API](https://www.anchorterminal.com/compare/bybit-vs-kraken.md)\n- [Bybit vs Uniswap Trading API](https://www.anchorterminal.com/compare/bybit-vs-uniswap.md)\n- [Crypto.com Exchange API vs Kraken API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-kraken.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 Kraken API](https://www.anchorterminal.com/compare/gate-io-vs-kraken.md)\n- [Gate vs Uniswap Trading API](https://www.anchorterminal.com/compare/gate-io-vs-uniswap.md)\n- [Gemini Exchange API vs Kraken API](https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken.md)\n- [Gemini Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.md)\n- [HTX trading API vs Kraken API](https://www.anchorterminal.com/compare/htx-vs-kraken.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 Kraken API](https://www.anchorterminal.com/compare/binance-vs-kraken.md)\n- [Binance API vs Uniswap Trading API](https://www.anchorterminal.com/compare/binance-vs-uniswap.md)\n- [Coinbase Advanced Trade API vs Kraken API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-kraken.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 Kraken API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-kraken.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 KuCoin](https://www.anchorterminal.com/compare/kraken-vs-kucoin.md)\n- [Kraken API vs MEXC API](https://www.anchorterminal.com/compare/kraken-vs-mexc.md)\n- [Kraken API vs OKX API](https://www.anchorterminal.com/compare/kraken-vs-okx.md)\n- [Kraken API vs Upbit Open API](https://www.anchorterminal.com/compare/kraken-vs-upbit.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- [Deribit vs Kraken API](https://www.anchorterminal.com/compare/deribit-vs-kraken.md)\n- [dYdX vs Kraken API](https://www.anchorterminal.com/compare/dydx-vs-kraken.md)\n- [Hyperliquid vs Kraken API](https://www.anchorterminal.com/compare/hyperliquid-vs-kraken.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": "Kraken API vs Uniswap Trading API",
        "url": ""
      }
    ],
    "description": "Kraken scores 71 (BB) to Uniswap Trading's 63.3 (B) for exchange spot trading. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Kraken API BB 71",
      "Uniswap Trading API B 63.3",
      "scores"
    ],
    "h1": "Kraken API vs Uniswap Trading API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/kraken-vs-uniswap",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Kraken vs Uniswap Trading for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/kraken-vs-uniswap"
  },
  "tokens": {
    "markdown": 5150,
    "slim": 2930
  },
  "version": 1
}
