{
  "data": {
    "a": {
      "slug": "gemini-exchange",
      "name": "Gemini Exchange API",
      "vendor": "Gemini Trust Company, LLC",
      "vendorUrl": "https://developer.gemini.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "Gemini's exchange API for spot, margin, perpetuals, prediction markets and staking, through REST, WebSocket and FIX, with API key roles or OAuth, plus an official MCP server and SDKs from its developer-platform repository.",
      "url": "https://www.anchorterminal.com/tools/gemini-exchange",
      "markdownUrl": "https://www.anchorterminal.com/tools/gemini-exchange.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gemini-exchange.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json",
      "dns": "gemini-exchange.grade.anchorterminal.com",
      "repo": "https://github.com/gemini/developer-platform",
      "license": "Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@gemini-markets/sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key and secret made at exchange.gemini.com/settings/api after a browser signup with identity checks, sent as X-GEMINI-APIKEY, X-GEMINI-PAYLOAD (base64 JSON with a nonce) and X-GEMINI-SIGNATURE (HMAC-SHA384). Keys carry one role, Trader by default, Fund Manager for withdrawals and transfers, Auditor read-only, Administrator for master keys only, and a `master-` key reaches subaccounts. A key can require a heartbeat that cancels its session's orders after 30 seconds of silence. OAuth 2.0 (authorisation code, PKCE S256 for public clients, 24-hour access tokens, single-use refresh tokens, RFC 7009 revocation) is open in the sandbox at once and reviewed by Gemini before production. No IP allow-list was found in the docs (https://developer.gemini.com/roles, https://developer.gemini.com/authentication/api-key, https://developer.gemini.com/authentication/oauth, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "The API itself costs nothing. Trades pay the API fee schedule, effective 1 September 2026, 0.600% maker and 1.200% taker at the base tier (under $10,000 of 30-day volume), falling to 0.000% maker and 0.020% taker above $250M. Stablecoin pairs 0.00% maker and 0.01% taker. Derivatives from 0.02% maker and 0.07% taker, charged in GUSD. Liquidations 0.5%. The sandbox at api.sandbox.gemini.com credits each new account with test funds and needs no card (https://www.gemini.com/fees/api-fee-schedule, https://developer.gemini.com/get-started/sandbox, checked 2026-11-03).",
      "priceSummary": "0.6% fee",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, llms.txt, agents.md, the OpenAPI catalogue or the fee schedule (checked 2026-11-03). Trading fees are taken from the account; onboarding is a browser signup.",
        "endpoints": []
      },
      "toolCount": 87,
      "popularity": {
        "githubStars": 8,
        "npmWeekly": 99,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://developer.gemini.com",
      "llmsTxt": "https://developer.gemini.com/llms.txt",
      "openapi": "https://developer.gemini.com/specs/openapi/rest.yaml",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "exchange.staking",
        "market.crypto"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "llms-txt",
        "openapi",
        "sandbox",
        "status-page",
        "bug-bounty",
        "typescript",
        "go",
        "usage-priced"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 74.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 70,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 88,
          "payments": 40,
          "reliability": 73,
          "schema": 88,
          "security": 78,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.",
        "bestFor": "An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.",
        "strengths": [
          "Key roles enforce least privilege, since Trader cannot withdraw, Fund Manager cannot trade, Auditor is read-only, and a 403 `MissingRole` names the role an endpoint needs",
          "Official MCP server with readOnlyHint and destructiveHint on every tool, a `confirm: true` gate on funds-moving tools, untrusted-output framing and redaction of free-text fields",
          "OpenAPI 3 and AsyncAPI files, llms.txt, llms-full.txt, agents.md, an agent card and an error-codes page with 53 named reasons",
          "A sandbox with the same REST, WebSocket and FIX surfaces, test balances on signup and a documented 2FA bypass for automated tests",
          "Fee schedule published per tier without login, and a Statuspage feed with component-level incidents"
        ],
        "weaknesses": [
          "Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice",
          "No Retry-After, backoff guidance or SLA; 429 continues until the rate drops, and the upcoming-changes page reads \"TBD\"",
          "The MCP server lists 87 tools with no toolset or read-only subset switch, which costs context on every session",
          "The hosted MCP address in the repository's plugin manifest is on no docs page and gave no complete answer to a GET",
          "Accounts in the United Kingdom, the EEA and Australia closed on 6 April 2026, and the availability page still lists those countries"
        ],
        "agentNotes": [
          "Create a Trader key for order flow and a separate Fund Manager key only if withdrawals are in scope; never combine them, and keep the secret out of prompts and logs",
          "Set a `client_order_id` per order and look it up with `get_order_status` before resending after a timeout, because Gemini does not reject duplicates",
          "Start on api.sandbox.gemini.com with the same code; sandbox apps register at once, production OAuth apps wait for Gemini's review",
          "Stay under 1 public and 5 private requests a second; a 429 keeps answering 429 until the rate falls, with no Retry-After to read",
          "Check the person's country against the availability page first; UK, EEA and Australian accounts were closed on 6 April 2026"
        ],
        "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": 74.6
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 88,
          "payments": 40,
          "reliability": 73,
          "schema": 88,
          "security": 78,
          "transparency": 54
        },
        "provenanceScore": 95,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @gemini-markets/sdk",
        "http": "curl https://api.gemini.com/v1/pubticker/btcusd",
        "claudeCode": "claude mcp add gemini -s user -e GEMINI_API_KEY=your_key -e GEMINI_API_SECRET=your_secret -- node /absolute/path/to/mcp-server/dist/index.js",
        "config": {
          "mcpServers": {
            "gemini": {
              "args": [
                "/absolute/path/to/mcp-server/dist/index.js"
              ],
              "command": "node",
              "env": {
                "GEMINI_ACCOUNT": "primary",
                "GEMINI_API_KEY": "your_api_key_here",
                "GEMINI_API_SECRET": "your_api_secret_here",
                "GEMINI_WS_URL": "wss://ws.gemini.com"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/gemini-exchange"
      },
      "area": "payments",
      "unitPrices": [
        {
          "item": "Spot maker fee, base tier (under $10,000 of 30-day volume)",
          "unit": "pct",
          "usd": 0.6,
          "note": "API fee schedule effective 1 September 2026"
        },
        {
          "item": "Spot taker fee, base tier",
          "unit": "pct",
          "usd": 1.2,
          "note": "falls to 0.02% above $250M of 30-day volume"
        },
        {
          "item": "Derivatives taker fee, base tier",
          "unit": "pct",
          "usd": 0.07,
          "note": "maker 0.02%, charged in GUSD"
        }
      ],
      "provenance": {
        "legalEntity": "Gemini Trust Company, LLC",
        "domain": "gemini.com",
        "domainRegistered": "1994-02-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.gemini.com/legal/user-agreement",
        "privacy": "https://www.gemini.com/legal/privacy-policy",
        "statusPage": "https://status.gemini.com",
        "changelog": "https://developer.gemini.com/changelog/revision-history",
        "securityTxt": "valid",
        "checked": "2026-11-03",
        "notes": [
          "The user agreement page of 19 February 2026 names Gemini Trust Company, LLC and Gemini Moonbase, LLC by state of residence; the privacy policy of 11 May 2026 lists the affiliates by region. The SEC's submissions record names the parent Gemini Space Station, Inc., Nasdaq GEMI.",
          "RDAP gives gemini.com a registration date of 14 February 1994.",
          "https://www.gemini.com/.well-known/security.txt is a PGP-signed file with Contact psirt@gemini.com, a bug bounty policy with payouts from $150 to $20,000 and a sandbox-only scope, but no Expires line.",
          "www.gemini.com/robots.txt allows the pages read and sets Crawl-delay 600; developer.gemini.com and status.gemini.com allow all (the status site disallows /api/ and /embed/, so the history feed was read, not the incidents API). support.gemini.com answered 403 to an article fetch.",
          "status.gemini.com is a Statuspage site with an Atom history feed."
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gemini-exchange.json",
      "live": {
        "slug": "gemini-exchange",
        "vendorStatus": {
          "page": "https://status.gemini.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T21:25:54.113313129Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@gemini-markets/sdk",
            "version": "0.1.1",
            "seenAt": "2026-11-04T20:18:02.796959315Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 105,
        "securityTxt": {
          "url": "https://gemini.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-11-04T15:53:25.749980755Z"
        },
        "updatedAt": "2026-11-04T21:25:54.113313129Z"
      }
    },
    "answer": "Gemini Exchange API scores 74.6 (BB) on agent readiness against HTX trading API's 43.3 (E), and leads in every scored category.",
    "b": {
      "slug": "htx",
      "name": "HTX trading API",
      "vendor": "HTX",
      "vendorUrl": "https://www.htx.com",
      "kind": "http-api",
      "category": "crypto-exchanges",
      "summary": "HTX, the exchange formerly Huobi, runs REST and WebSocket APIs for spot and derivatives trading, balances, transfers and withdrawals, authenticated with HMAC-signed API keys that carry read, trade and withdraw permissions.",
      "url": "https://www.anchorterminal.com/tools/htx",
      "markdownUrl": "https://www.anchorterminal.com/tools/htx.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/htx.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/htx.json",
      "dns": "htx.grade.anchorterminal.com",
      "repo": "https://github.com/HuobiRDCenter",
      "transports": [],
      "packages": [],
      "auth": "api-key",
      "authNotes": "API keys made in the account's API Management page after a browser sign-up and identity check. Requests are signed with HMAC SHA256 (SignatureVersion 2) over the query string, with AccessKeyId, Timestamp and the Signature sent as query parameters; the secret never travels. A main account key carries Read, Trade and Withdraw permissions, a sub-user key Read and Trade only. A key can be bound to up to 20 IP addresses, and the docs say a key without IP binding expires after 90 days (https://huobiapi.github.io/docs/spot/v1/en/, checked 2026-11-03).",
      "pricing": "usage",
      "pricingNotes": "Trading fees per order. The fee schedule at htx.com/fee is drawn by script and answered our reader with no text, so no rate is recorded; third-party guides give 0.2 per cent maker and taker at the base tier, which is a lead and not a source. Public market data needs no key and no account (https://www.htx.com/fee/, checked 2026-11-03).",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs or on the pages that loaded (checked 2026-11-03). Trading fees are taken from each fill.",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": 684,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://huobiapi.github.io/docs/spot/v1/en/",
      "capabilities": [
        "exchange.market-data",
        "exchange.spot-trading",
        "exchange.derivatives",
        "exchange.balances",
        "exchange.transfers",
        "market.crypto"
      ],
      "tags": [
        "hosted",
        "api-key",
        "closed-source",
        "usage-priced",
        "python",
        "java",
        "go",
        "no-status-page"
      ],
      "lastRelease": "2026-10-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.3,
        "grade": "E",
        "agentReady": false,
        "rank": 1156,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 21,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 57,
          "payments": 15,
          "reliability": 38,
          "schema": 40,
          "security": 51,
          "transparency": 25
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "HTX's API has per-endpoint rate limits, read, trade and withdraw key permissions with IP binding, and SDKs in five languages. No official MCP server exists, the testnet is closed, the public reference is still Huobi's with a 2022 changelog, and the fee schedule, terms and restricted countries are on script-drawn pages we couldn't read.",
        "bestFor": "Spot and USDT-margined derivatives for agents that can hold an HTX key, with no MCP server and no testnet.",
        "strengths": [
          "Key permissions split into Read, Trade and Withdraw, sub-user keys without Withdraw, and up to 20 bound IP addresses per key",
          "Rate limits published per endpoint with numbers, and remaining-quota headers on every response",
          "A client-order-id unique within 8 hours on orders and idempotent on withdrawals, so a retry doesn't double an order",
          "Official SDKs in Python, Java, C++, C# and Go, the contract ones pushed on 21 October 2026"
        ],
        "weaknesses": [
          "No official MCP server; the only one in the MCP registry is a third party's read-only ticker server",
          "The testnet is shut down, so order logic can only be tried with real funds",
          "The public API reference is still branded Huobi with a last changelog entry of June 2022, and HTX's newer docs are drawn by script",
          "No status page, no SLA and no documented 429 or Retry-After behaviour",
          "The fee schedule, user agreement, privacy policy and restricted-country list couldn't be read, so none is recorded first-hand"
        ],
        "agentNotes": [
          "Ask the operator for a key with Read and Trade only and bound to your IP addresses; a key without IP binding expires after 90 days",
          "Send a fresh client-order-id of up to 64 characters with every order and reuse it only on retry; a repeat within 8 hours answers invalid.client.order.id",
          "Watch X-HB-RateLimit-Requests-Remain and pace at under 100 order calls per 2 seconds per UID; limits are shared by every key on the account",
          "There is no testnet; try order logic with the smallest size the market allows",
          "Confirm the person's country is served before trading; the restricted list in the user agreement couldn't be read here"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.3
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 57,
          "payments": 15,
          "reliability": 38,
          "schema": 40,
          "security": 51,
          "transparency": 15
        },
        "provenanceScore": 34,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.huobi.pro/market/tickers"
      },
      "letme": {
        "capability": "https://letme.dev/exchange.market-data",
        "tool": "https://letme.dev/htx"
      },
      "area": "payments",
      "provenance": {
        "legalEntity": "",
        "domain": "htx.com",
        "domainRegistered": "1995-12-13",
        "endpointOnVendorDomain": false,
        "terms": "https://www.htx.com/en-in/support/360000298561/",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://huobiapi.github.io/docs/spot/v1/en/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The legal entity is unread. The HTX Platform User Agreement and every other page on www.htx.com answered our reader with no text on 3 November 2026 (the pages are drawn by script), so the terms, privacy policy, fee schedule and about page were not read. Terms URL recorded from a search result's title.",
          "RDAP gives htx.com a registration date of 13 December 1995, long before the exchange took the name in 2023; the domain was acquired, not registered, by the exchange.",
          "The API endpoint api.huobi.pro is on the old huobi.pro domain, not htx.com.",
          "www.htx.com/robots.txt allows / and disallows account paths (finance/account, user-center/security and the like). www.huobi.com/robots.txt disallows everything and was not read further. huobiapi.github.io has no robots.txt.",
          "https://www.htx.com/.well-known/security.txt answered no text; recorded as none. status.htx.com does not resolve."
        ],
        "score": 34
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/htx.json",
      "live": {
        "slug": "htx",
        "securityTxt": {
          "url": "https://htx.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:20.226147452Z"
        },
        "updatedAt": "2026-11-04T15:54:20.226147452Z"
      }
    },
    "edges": [
      {
        "by": 50,
        "category": "transparency",
        "leads": "gemini-exchange",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The editorial half. A closed service under a user agreement that names its entities by state, with the MCP server and SDKs open under Apache-2.0 (18 of 30). The privacy policy of 11 May 2026 names entities and processing countries, ties retention to need without numbers and names provider categories only, with no DPA or subprocessor list found (16 of 30). The revision history records removals and type changes with dates, but the upcoming-changes page is \"TBD\" and no notice period is stated (8 of 20). Processing countries are named (US, Ireland, UK, Malta, Singapore, Australia) and providers by category, with no named subprocessors (12 of 20). 18 + 16 + 8 + 12 = 54.",
          "b": "The editorial half. A closed service whose user agreement exists but couldn't be read (script-drawn pages), so the licence clarity is unknown rather than unclear (10 of 30). The privacy policy was not read (0 of 30, unchecked). The testnet shutdown and the 2022 changelog entries are dated, with no deprecation policy (5 of 20). No subprocessor or data-location statement read (0 of 20). 10 + 0 + 5 + 0 = 15."
        },
        "scores": {
          "a": 75,
          "b": 25
        }
      },
      {
        "by": 48,
        "category": "schema",
        "leads": "gemini-exchange",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3 for REST (specs/openapi/rest.yaml), AsyncAPI for WebSocket, a prediction-markets OpenAPI file and a specs/index.json catalogue; the MCP server's tools take zod schemas published as JSON Schema (25). llms.txt, llms-full.txt, agents.md, an agent card and an agent skills index (10). Endpoint pages state purpose, the Build an agent guide says what to establish before acting and when to stop, and MCP tool descriptions tell the model when to confirm; the docs don't say when not to use an endpoint (15 of 20). Typed inputs with enums for order types, options and sessions, required fields marked, decimals as strings since 7 July 2026 (12 of 15). Examples throughout, samples in three languages, and an error-codes page with 53 named reasons and their HTTP statuses (14 of 15). A revision history dated from 2015 to 28 October 2026 and versioned paths (v1, v2), but the upcoming-changes page reads \"TBD\" (12 of 15). 25 + 10 + 15 + 12 + 14 + 12 = 88.",
          "b": "No OpenAPI or other machine-readable contract found in the docs or the GitHub accounts (0). No llms.txt on htx.com, and the readable reference is a static page (0). Each endpoint states its purpose and parameters, without when-to-use guidance (12 of 20). Parameter tables carry types, required flags and enums for order types and states (10 of 15). Request and response examples throughout and error-code tables with messages (11 of 15). Versions v1 and v2 are mixed in one reference whose last changelog entry is 24 June 2022, while HTX's newer docs on htx.com couldn't be read (7 of 15). 0 + 0 + 12 + 10 + 11 + 7 = 40."
        },
        "scores": {
          "a": 88,
          "b": 40
        }
      },
      {
        "by": 35,
        "category": "reliability",
        "leads": "gemini-exchange",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the hosted lines on the REST API at api.gemini.com. status.gemini.com is a Statuspage site with component history (20). Its Atom feed for 10 September to 3 November 2026 holds 25 entries, mostly scheduled trading and FIX upgrades of 15 to 60 minutes with possible order timeouts, single-network deposit delays, and incorrect perpetual index prices for about 3.5 hours on 15 and 16 October; a 3-hour scheduled eOTC window was planned and outside the core API. Minor only (20). Rate limits with numbers, 120 a minute public and 600 private plus per-endpoint limits (15). 429 is documented but with no Retry-After or backoff guidance, and client order ids are recommended without duplicate rejection, so retries are not safe by contract; the heartbeat cancel is a safety net rather than idempotency (8 of 15). No SLA found (0). Generally available (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.",
          "b": "Read with the hosted lines. No status page found; status.htx.com does not resolve and nothing on htx.com was readable (0). No readable incident history (5). Rate limits documented per endpoint with numbers, 100 order calls per 2 seconds per UID and so on, with remaining-quota headers (15). No 429 or Retry-After behaviour is documented and the only limit error named is 1006 for conditional orders; a client-order-id unique within 8 hours and an idempotent withdrawal id give safe retries on writes (8 of 15). No SLA found (0). The spot and swap APIs are generally available (10). 0 + 5 + 15 + 8 + 0 + 10 = 38."
        },
        "scores": {
          "a": 73,
          "b": 38
        }
      },
      {
        "by": 31,
        "category": "maintenance",
        "leads": "gemini-exchange",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a closed hosted service with an open repository. The revision history's latest entry is 28 October 2026 and the repository was pushed on 5 October (30). Thirteen dated entries between 2 September and 28 October 2026 (20). The nine open items on the repository are all pull requests with replies, Dependabot included, and the docs name trading@gemini.com for developer support; no public issue tracker was tested (15 of 25). Not in the official MCP registry, but current official SDKs, TypeScript 0.1.1 of 23 September and Go 0.1.0 of 29 August 2026 (15). CI workflows validate and publish both SDKs and the MCP server has tests; dependencies are current (8 of 10). 30 + 20 + 15 + 15 + 8 = 88.",
          "b": "Read as a closed service. The readable changelog ends on 24 June 2022, but the official contract SDKs were pushed on 21 October 2026 and the spot SDKs in April and July 2026, so the API surface is still being maintained; judgement call (20 of 30). SDK pushes on 30 July, 23 August and 21 October 2026 are commits, not releases (10 of 20). A Telegram group for API support and a support centre, neither tested; GitHub issues not read (8 of 15). Official SDKs in five languages (15). No CI seen, dependencies not checked (4 of 10). 20 + 10 + 8 + 15 + 4 = 57."
        },
        "scores": {
          "a": 88,
          "b": 57
        }
      },
      {
        "by": 27,
        "category": "security",
        "leads": "gemini-exchange",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Revocable API keys with one role each (Trader, Fund Manager, Auditor, Administrator), HMAC-SHA384 signing with a nonce, and OAuth 2.0 with scopes, PKCE S256, single-use refresh tokens and RFC 7009 revocation; no IP allow-list documented and no key expiry (28 of 30). Auditor is read-only, a Trader key cannot withdraw, approved withdrawal addresses are a Fund Manager action, and the MCP server refuses funds-moving tools without `confirm: true` (18 of 20). The MCP server wraps every response in untrusted-output markers, strips control and bidi characters and redacts memos, labels and agreement text; the REST docs say nothing on the subject (13 of 15). Order and transfer history are readable, but no per-key audit log or API access log was found (5 of 15). security.txt with a PGP contact and a bug bounty paying $150 to $20,000, scoped to the sandbox hosts; no certification was read and no public advisory process was found (14 of 20). 28 + 18 + 13 + 5 + 14 = 78.",
          "b": "HMAC-signed keys with Read, Trade and Withdraw permissions, sub-user keys without Withdraw, up to 20 bound IPs, revocation in the account and a 90-day expiry without IP binding. The AccessKeyId and the HMAC signature travel as query parameters; the secret does not, so no deduction for a secret in the URL (24 of 30). Read-only keys and withdraw-free keys exist; no server-side confirmation for orders or withdrawals (14 of 20). The API returns the exchange's own data, no untrusted content (10). No per-call log or key-use history found for the operator (3 of 15). No security.txt, disclosure policy or certification found on the pages that loaded (0 of 20). 24 + 14 + 10 + 3 + 0 = 51."
        },
        "scores": {
          "a": 78,
          "b": 51
        }
      },
      {
        "by": 25,
        "category": "payments",
        "leads": "gemini-exchange",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No machine payment protocol (0). The API fee schedule is public per tier without login, 0.6% maker and 1.2% taker at the base tier (20). The API is free to call, public market data needs no key, and the sandbox credits test funds with no card (20). A person must sign up in a browser with identity checks, mint a key or approve an OAuth grant, and production OAuth apps wait for Gemini's review (0). 0 + 20 + 20 + 0 = 40.",
          "b": "No machine payment protocol (0). The fee schedule at htx.com/fee is drawn by script and answered no text, so no price is recorded first-hand (0 of 20, unchecked). Public market data needs no key, card or account; trading needs a verified and funded account. Judgement call (15 of 20). A person must sign up in a browser and pass identity checks (0). 0 + 0 + 15 + 0 = 15."
        },
        "scores": {
          "a": 40,
          "b": 15
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gemini Trust Company, LLC",
        "b": "HTX",
        "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": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "87",
        "b": "0",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-28",
        "b": "2026-10-21",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8 stars, 99 npm/wk",
        "b": "684 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Gemini Exchange API scores 74.6 (BB) on agent readiness against HTX trading API's 43.3 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Gemini Exchange API or HTX trading API?"
      },
      {
        "answer": "Gemini Exchange API takes an API key or an OAuth sign-in. HTX trading API needs an API key.",
        "question": "Do Gemini Exchange API and HTX trading API need an API key?"
      },
      {
        "answer": "Gemini Exchange API runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for HTX trading API.",
        "question": "Can an agent call Gemini Exchange API and HTX trading API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 73 against 38",
          "Schema \u0026 documentation, 88 against 40",
          "Agent ergonomics, 79 against 69",
          "Security \u0026 auth, 78 against 51",
          "Payments \u0026 pricing, 40 against 15",
          "Maintenance \u0026 community, 88 against 57",
          "Transparency \u0026 trust, 75 against 25"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.",
        "slug": "gemini-exchange",
        "watchFor": "Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Spot and USDT-margined derivatives for agents that can hold an HTX key, with no MCP server and no testnet.",
        "slug": "htx",
        "watchFor": "No official MCP server; the only one in the MCP registry is a third party's read-only ticker server"
      }
    ],
    "history": null,
    "job": {
      "capability": "exchange.market-data",
      "name": "Exchange market data"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange.json",
        "title": "Bitfinex API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitfinex-vs-htx.json",
        "title": "Bitfinex API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/bitfinex-vs-htx"
      },
      {
        "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/bithumb-vs-gemini-exchange.json",
        "title": "Bithumb Open API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bithumb-vs-htx.json",
        "title": "Bithumb Open API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/bithumb-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange.json",
        "title": "Bitstamp API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitstamp-vs-htx.json",
        "title": "Bitstamp API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/bitstamp-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange.json",
        "title": "Bybit vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bybit-vs-htx.json",
        "title": "Bybit vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/bybit-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange.json",
        "title": "Crypto.com Exchange API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-htx.json",
        "title": "Crypto.com Exchange API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/crypto-com-exchange-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange.json",
        "title": "Gate vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gate-io-vs-htx.json",
        "title": "Gate vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/gate-io-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.json",
        "title": "Gemini Exchange API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid"
      },
      {
        "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-kucoin.json",
        "title": "Gemini Exchange API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc.json",
        "title": "Gemini Exchange API vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.json",
        "title": "Gemini Exchange API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/gemini-exchange-vs-upbit.json",
        "title": "Gemini Exchange API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-hyperliquid.json",
        "title": "HTX trading API vs Hyperliquid",
        "url": "https://www.anchorterminal.com/compare/htx-vs-hyperliquid"
      },
      {
        "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-kucoin.json",
        "title": "HTX trading API vs KuCoin",
        "url": "https://www.anchorterminal.com/compare/htx-vs-kucoin"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-mexc.json",
        "title": "HTX trading API vs MEXC API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-mexc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/htx-vs-okx.json",
        "title": "HTX trading API vs OKX API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-okx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/htx-vs-upbit.json",
        "title": "HTX trading API vs Upbit Open API",
        "url": "https://www.anchorterminal.com/compare/htx-vs-upbit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-gemini-exchange.json",
        "title": "Binance API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/binance-vs-htx.json",
        "title": "Binance API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/binance-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange.json",
        "title": "Coinbase Advanced Trade API vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-htx.json",
        "title": "Coinbase Advanced Trade API vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-htx.json",
        "title": "Coinbase MCP server (Coinbase for Agents) vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/coinbase-mcp-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange.json",
        "title": "Deribit vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deribit-vs-htx.json",
        "title": "Deribit vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/deribit-vs-htx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.json",
        "title": "dYdX vs Gemini Exchange API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dydx-vs-htx.json",
        "title": "dYdX vs HTX trading API",
        "url": "https://www.anchorterminal.com/compare/dydx-vs-htx"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 35,
        "edge": "gemini-exchange",
        "gemini-exchange": 73,
        "htx": 38,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 48,
        "edge": "gemini-exchange",
        "gemini-exchange": 88,
        "htx": 40,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 10,
        "edge": "gemini-exchange",
        "gemini-exchange": 79,
        "htx": 69,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 27,
        "edge": "gemini-exchange",
        "gemini-exchange": 78,
        "htx": 51,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 25,
        "edge": "gemini-exchange",
        "gemini-exchange": 40,
        "htx": 15,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 31,
        "edge": "gemini-exchange",
        "gemini-exchange": 88,
        "htx": 57,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 50,
        "edge": "gemini-exchange",
        "gemini-exchange": 75,
        "htx": 25,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gemini Exchange API scores 74.6 (BB) on agent readiness against HTX trading API's 43.3 (E), and leads in every scored category. Both do exchange market data.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "gemini-exchange": "Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.",
      "htx": "HTX's API has per-endpoint rate limits, read, trade and withdraw key permissions with IP binding, and SDKs in five languages. No official MCP server exists, the testnet is closed, the public reference is still Huobi's with a 2022 changelog, and the fee schedule, terms and restricted countries are on script-drawn pages we couldn't read."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx",
    "json": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.min.md"
  },
  "markdown": "Gemini Exchange API scores 74.6 (BB) on agent readiness against HTX trading API's 43.3 (E), and leads in every scored category. Both do exchange market data.\n\n- Gemini Exchange API: grade BB, 74.6/100, rank #70 of 1349. Markdown https://www.anchorterminal.com/tools/gemini-exchange.md · JSON https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json\n- HTX trading API: grade E, 43.3/100, rank #1156 of 1349. Markdown https://www.anchorterminal.com/tools/htx.md · JSON https://www.anchorterminal.com/api/v1/tools/htx.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### Gemini Exchange API (BB)\n\nGood for: An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.\n\nAhead on:\n- Reliability, 73 against 38\n- Schema \u0026 documentation, 88 against 40\n- Agent ergonomics, 79 against 69\n- Security \u0026 auth, 78 against 51\n- Payments \u0026 pricing, 40 against 15\n- Maintenance \u0026 community, 88 against 57\n- Transparency \u0026 trust, 75 against 25\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice\n\n### HTX trading API (E)\n\nGood for: Spot and USDT-margined derivatives for agents that can hold an HTX key, with no MCP server and no testnet.\n\nWatch for: No official MCP server; the only one in the MCP registry is a third party's read-only ticker server\n\n\n## Why the edge\n\n### Transparency \u0026 trust: Gemini Exchange API +50\n\n- Gemini Exchange API (75): The editorial half. A closed service under a user agreement that names its entities by state, with the MCP server and SDKs open under Apache-2.0 (18 of 30). The privacy policy of 11 May 2026 names entities and processing countries, ties retention to need without numbers and names provider categories only, with no DPA or subprocessor list found (16 of 30). The revision history records removals and type changes with dates, but the upcoming-changes page is \"TBD\" and no notice period is stated (8 of 20). Processing countries are named (US, Ireland, UK, Malta, Singapore, Australia) and providers by category, with no named subprocessors (12 of 20). 18 + 16 + 8 + 12 = 54.\n- HTX trading API (25): The editorial half. A closed service whose user agreement exists but couldn't be read (script-drawn pages), so the licence clarity is unknown rather than unclear (10 of 30). The privacy policy was not read (0 of 30, unchecked). The testnet shutdown and the 2022 changelog entries are dated, with no deprecation policy (5 of 20). No subprocessor or data-location statement read (0 of 20). 10 + 0 + 5 + 0 = 15.\n\n### Schema \u0026 documentation: Gemini Exchange API +48\n\n- Gemini Exchange API (88): OpenAPI 3 for REST (specs/openapi/rest.yaml), AsyncAPI for WebSocket, a prediction-markets OpenAPI file and a specs/index.json catalogue; the MCP server's tools take zod schemas published as JSON Schema (25). llms.txt, llms-full.txt, agents.md, an agent card and an agent skills index (10). Endpoint pages state purpose, the Build an agent guide says what to establish before acting and when to stop, and MCP tool descriptions tell the model when to confirm; the docs don't say when not to use an endpoint (15 of 20). Typed inputs with enums for order types, options and sessions, required fields marked, decimals as strings since 7 July 2026 (12 of 15). Examples throughout, samples in three languages, and an error-codes page with 53 named reasons and their HTTP statuses (14 of 15). A revision history dated from 2015 to 28 October 2026 and versioned paths (v1, v2), but the upcoming-changes page reads \"TBD\" (12 of 15). 25 + 10 + 15 + 12 + 14 + 12 = 88.\n- HTX trading API (40): No OpenAPI or other machine-readable contract found in the docs or the GitHub accounts (0). No llms.txt on htx.com, and the readable reference is a static page (0). Each endpoint states its purpose and parameters, without when-to-use guidance (12 of 20). Parameter tables carry types, required flags and enums for order types and states (10 of 15). Request and response examples throughout and error-code tables with messages (11 of 15). Versions v1 and v2 are mixed in one reference whose last changelog entry is 24 June 2022, while HTX's newer docs on htx.com couldn't be read (7 of 15). 0 + 0 + 12 + 10 + 11 + 7 = 40.\n\n### Reliability: Gemini Exchange API +35\n\n- Gemini Exchange API (73): Read with the hosted lines on the REST API at api.gemini.com. status.gemini.com is a Statuspage site with component history (20). Its Atom feed for 10 September to 3 November 2026 holds 25 entries, mostly scheduled trading and FIX upgrades of 15 to 60 minutes with possible order timeouts, single-network deposit delays, and incorrect perpetual index prices for about 3.5 hours on 15 and 16 October; a 3-hour scheduled eOTC window was planned and outside the core API. Minor only (20). Rate limits with numbers, 120 a minute public and 600 private plus per-endpoint limits (15). 429 is documented but with no Retry-After or backoff guidance, and client order ids are recommended without duplicate rejection, so retries are not safe by contract; the heartbeat cancel is a safety net rather than idempotency (8 of 15). No SLA found (0). Generally available (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.\n- HTX trading API (38): Read with the hosted lines. No status page found; status.htx.com does not resolve and nothing on htx.com was readable (0). No readable incident history (5). Rate limits documented per endpoint with numbers, 100 order calls per 2 seconds per UID and so on, with remaining-quota headers (15). No 429 or Retry-After behaviour is documented and the only limit error named is 1006 for conditional orders; a client-order-id unique within 8 hours and an idempotent withdrawal id give safe retries on writes (8 of 15). No SLA found (0). The spot and swap APIs are generally available (10). 0 + 5 + 15 + 8 + 0 + 10 = 38.\n\n### Maintenance \u0026 community: Gemini Exchange API +31\n\n- Gemini Exchange API (88): Read as a closed hosted service with an open repository. The revision history's latest entry is 28 October 2026 and the repository was pushed on 5 October (30). Thirteen dated entries between 2 September and 28 October 2026 (20). The nine open items on the repository are all pull requests with replies, Dependabot included, and the docs name trading@gemini.com for developer support; no public issue tracker was tested (15 of 25). Not in the official MCP registry, but current official SDKs, TypeScript 0.1.1 of 23 September and Go 0.1.0 of 29 August 2026 (15). CI workflows validate and publish both SDKs and the MCP server has tests; dependencies are current (8 of 10). 30 + 20 + 15 + 15 + 8 = 88.\n- HTX trading API (57): Read as a closed service. The readable changelog ends on 24 June 2022, but the official contract SDKs were pushed on 21 October 2026 and the spot SDKs in April and July 2026, so the API surface is still being maintained; judgement call (20 of 30). SDK pushes on 30 July, 23 August and 21 October 2026 are commits, not releases (10 of 20). A Telegram group for API support and a support centre, neither tested; GitHub issues not read (8 of 15). Official SDKs in five languages (15). No CI seen, dependencies not checked (4 of 10). 20 + 10 + 8 + 15 + 4 = 57.\n\n### Security \u0026 auth: Gemini Exchange API +27\n\n- Gemini Exchange API (78): Revocable API keys with one role each (Trader, Fund Manager, Auditor, Administrator), HMAC-SHA384 signing with a nonce, and OAuth 2.0 with scopes, PKCE S256, single-use refresh tokens and RFC 7009 revocation; no IP allow-list documented and no key expiry (28 of 30). Auditor is read-only, a Trader key cannot withdraw, approved withdrawal addresses are a Fund Manager action, and the MCP server refuses funds-moving tools without `confirm: true` (18 of 20). The MCP server wraps every response in untrusted-output markers, strips control and bidi characters and redacts memos, labels and agreement text; the REST docs say nothing on the subject (13 of 15). Order and transfer history are readable, but no per-key audit log or API access log was found (5 of 15). security.txt with a PGP contact and a bug bounty paying $150 to $20,000, scoped to the sandbox hosts; no certification was read and no public advisory process was found (14 of 20). 28 + 18 + 13 + 5 + 14 = 78.\n- HTX trading API (51): HMAC-signed keys with Read, Trade and Withdraw permissions, sub-user keys without Withdraw, up to 20 bound IPs, revocation in the account and a 90-day expiry without IP binding. The AccessKeyId and the HMAC signature travel as query parameters; the secret does not, so no deduction for a secret in the URL (24 of 30). Read-only keys and withdraw-free keys exist; no server-side confirmation for orders or withdrawals (14 of 20). The API returns the exchange's own data, no untrusted content (10). No per-call log or key-use history found for the operator (3 of 15). No security.txt, disclosure policy or certification found on the pages that loaded (0 of 20). 24 + 14 + 10 + 3 + 0 = 51.\n\n### Payments \u0026 pricing: Gemini Exchange API +25\n\n- Gemini Exchange API (40): No machine payment protocol (0). The API fee schedule is public per tier without login, 0.6% maker and 1.2% taker at the base tier (20). The API is free to call, public market data needs no key, and the sandbox credits test funds with no card (20). A person must sign up in a browser with identity checks, mint a key or approve an OAuth grant, and production OAuth apps wait for Gemini's review (0). 0 + 20 + 20 + 0 = 40.\n- HTX trading API (15): No machine payment protocol (0). The fee schedule at htx.com/fee is drawn by script and answered no text, so no price is recorded first-hand (0 of 20, unchecked). Public market data needs no key, card or account; trading needs a verified and funded account. Judgement call (15 of 20). A person must sign up in a browser and pass identity checks (0). 0 + 0 + 15 + 0 = 15.\n\n## Score by category\n\n| Category | Weight | Gemini Exchange API | HTX trading API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 38 | Gemini Exchange API +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 40 | Gemini Exchange API +48 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 69 | Gemini Exchange API +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 78 | 51 | Gemini Exchange API +27 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 15 | Gemini Exchange API +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 88 | 57 | Gemini Exchange API +31 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 75 | 25 | Gemini Exchange API +50 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **74.6 · BB** | **43.3 · E** | |\n\n## Facts side by side\n\n| Fact | Gemini Exchange API | HTX trading API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Gemini Trust Company, LLC | HTX |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | stdio |  |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary hosted API under Gemini's user agreement. The developer-platform repository (MCP server, TypeScript and Go SDKs, samples and skills) is Apache-2.0 | none |\n| Tools exposed | 87 | 0 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-28 | 2026-10-21 |\n| Terms last updated | couldn't be read | no date given |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | not found in the text |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | yes |\n| Popularity | 8 stars, 99 npm/wk | 684 stars |\n\n## Verdicts\n\n**Gemini Exchange API.** Gemini publishes an OpenAPI and AsyncAPI contract, API key roles that keep withdrawals off a trading key, a funded sandbox, and an official MCP server whose tools carry read-only and destructive annotations and a confirm gate. Client order ids are not checked for duplicates, there is no SLA, and UK, EEA and Australian accounts closed in April 2026.\n\n**HTX trading API.** HTX's API has per-endpoint rate limits, read, trade and withdraw key permissions with IP binding, and SDKs in five languages. No official MCP server exists, the testnet is closed, the public reference is still Huobi's with a 2022 changelog, and the fee schedule, terms and restricted countries are on script-drawn pages we couldn't read.\n\n## Before you call either\n\n### Gemini Exchange API\n\n1. Create a Trader key for order flow and a separate Fund Manager key only if withdrawals are in scope; never combine them, and keep the secret out of prompts and logs\n2. Set a `client_order_id` per order and look it up with `get_order_status` before resending after a timeout, because Gemini does not reject duplicates\n3. Start on api.sandbox.gemini.com with the same code; sandbox apps register at once, production OAuth apps wait for Gemini's review\n4. Stay under 1 public and 5 private requests a second; a 429 keeps answering 429 until the rate falls, with no Retry-After to read\n5. Check the person's country against the availability page first; UK, EEA and Australian accounts were closed on 6 April 2026\n\n### HTX trading API\n\n1. Ask the operator for a key with Read and Trade only and bound to your IP addresses; a key without IP binding expires after 90 days\n2. Send a fresh client-order-id of up to 64 characters with every order and reuse it only on retry; a repeat within 8 hours answers invalid.client.order.id\n3. Watch X-HB-RateLimit-Requests-Remain and pace at under 100 order calls per 2 seconds per UID; limits are shared by every key on the account\n4. There is no testnet; try order logic with the smallest size the market allows\n5. Confirm the person's country is served before trading; the restricted list in the user agreement couldn't be read here\n\n## Questions\n\n### Which is better for AI agents, Gemini Exchange API or HTX trading API?\n\nGemini Exchange API scores 74.6 (BB) on agent readiness against HTX trading API's 43.3 (E), and leads in every scored category.\n\n### Do Gemini Exchange API and HTX trading API need an API key?\n\nGemini Exchange API takes an API key or an OAuth sign-in. HTX trading API needs an API key.\n\n### Can an agent call Gemini Exchange API and HTX trading API without installing anything?\n\nGemini Exchange API runs on your own machine, with no hosted endpoint listed. No hosted endpoint is listed for HTX trading API.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gemini-exchange\", \"b\": \"htx\"}`. From a terminal: `anchor compare gemini-exchange htx`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json and https://www.anchorterminal.com/api/v1/tools/htx.json\n\n## Other comparisons with Gemini Exchange API or HTX trading API\n\n- [Bitfinex API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange.md)\n- [Bitfinex API vs HTX trading API](https://www.anchorterminal.com/compare/bitfinex-vs-htx.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- [Bithumb Open API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange.md)\n- [Bithumb Open API vs HTX trading API](https://www.anchorterminal.com/compare/bithumb-vs-htx.md)\n- [Bitstamp API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange.md)\n- [Bitstamp API vs HTX trading API](https://www.anchorterminal.com/compare/bitstamp-vs-htx.md)\n- [Bybit vs Gemini Exchange API](https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange.md)\n- [Bybit vs HTX trading API](https://www.anchorterminal.com/compare/bybit-vs-htx.md)\n- [Crypto.com Exchange API vs Gemini Exchange API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange.md)\n- [Crypto.com Exchange API vs HTX trading API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-htx.md)\n- [Gate vs Gemini Exchange API](https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange.md)\n- [Gate vs HTX trading API](https://www.anchorterminal.com/compare/gate-io-vs-htx.md)\n- [Gemini Exchange API vs Hyperliquid](https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.md)\n- [Gemini Exchange API vs Kraken API](https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken.md)\n- [Gemini Exchange API vs KuCoin](https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.md)\n- [Gemini Exchange API vs MEXC API](https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc.md)\n- [Gemini Exchange API vs OKX API](https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.md)\n- [Gemini Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.md)\n- [Gemini Exchange API vs Upbit Open API](https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit.md)\n- [HTX trading API vs Hyperliquid](https://www.anchorterminal.com/compare/htx-vs-hyperliquid.md)\n- [HTX trading API vs Kraken API](https://www.anchorterminal.com/compare/htx-vs-kraken.md)\n- [HTX trading API vs KuCoin](https://www.anchorterminal.com/compare/htx-vs-kucoin.md)\n- [HTX trading API vs MEXC API](https://www.anchorterminal.com/compare/htx-vs-mexc.md)\n- [HTX trading API vs OKX API](https://www.anchorterminal.com/compare/htx-vs-okx.md)\n- [HTX trading API vs Uniswap Trading API](https://www.anchorterminal.com/compare/htx-vs-uniswap.md)\n- [HTX trading API vs Upbit Open API](https://www.anchorterminal.com/compare/htx-vs-upbit.md)\n- [Binance API vs Gemini Exchange API](https://www.anchorterminal.com/compare/binance-vs-gemini-exchange.md)\n- [Binance API vs HTX trading API](https://www.anchorterminal.com/compare/binance-vs-htx.md)\n- [Coinbase Advanced Trade API vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange.md)\n- [Coinbase Advanced Trade API vs HTX trading API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-htx.md)\n- [Coinbase MCP server (Coinbase for Agents) vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange.md)\n- [Coinbase MCP server (Coinbase for Agents) vs HTX trading API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-htx.md)\n- [Deribit vs Gemini Exchange API](https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange.md)\n- [Deribit vs HTX trading API](https://www.anchorterminal.com/compare/deribit-vs-htx.md)\n- [dYdX vs Gemini Exchange API](https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.md)\n- [dYdX vs HTX trading API](https://www.anchorterminal.com/compare/dydx-vs-htx.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": "Gemini Exchange API vs HTX trading API",
        "url": ""
      }
    ],
    "description": "Gemini Exchange scores 74.6 (BB) to HTX trading's 43.3 (E) for exchange market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Gemini Exchange API BB 74.6",
      "HTX trading API E 43.3",
      "scores"
    ],
    "h1": "Gemini Exchange API vs HTX trading API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/gemini-exchange-vs-htx",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gemini Exchange vs HTX trading for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/gemini-exchange-vs-htx"
  },
  "tokens": {
    "markdown": 5100,
    "slim": 2830
  },
  "version": 1
}
