# dYdX vs Gemini Exchange API

> Gemini Exchange scores 74.6 (BB) to dYdX's 69.5 (B) for exchange derivatives. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange
- Markdown: https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.md (~5,400 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-03

Gemini Exchange API scores 74.6 (BB) on agent readiness against dYdX's 69.5 (B), and leads in 4 of 7 scored categories. dYdX leads on reliability and payments & pricing. Both do exchange derivatives.

- dYdX: grade B, 69.5/100, rank #221 of 1349. Markdown https://www.anchorterminal.com/tools/dydx.md · JSON https://www.anchorterminal.com/api/v1/tools/dydx.json
- 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
- Best crypto exchange APIs and MCP servers for AI agents: https://www.anchorterminal.com/best/crypto-exchanges/index.md
- All 210 exchanges comparisons: https://www.anchorterminal.com/compare/crypto-exchanges/index.md

## Which one, for what

### dYdX (B)

Good for: An agent trading perpetuals from its own Cosmos wallet or through a permissioned key on an owner's account, outside the US, Canada and UK.

Ahead on:
- Reliability, 83 against 73
- Payments & pricing, 60 against 40

Also in its favour:
- Open source

Watch for: No official MCP server; the one registry entry is a third party's analytics server

### Gemini Exchange API (BB)

Good for: An agent trading spot, perpetuals or prediction markets for a US customer with a role-limited key and a sandbox to rehearse on.

Ahead on:
- Schema & documentation, 88 against 58
- Agent ergonomics, 79 against 66
- Maintenance & community, 88 against 83
- Transparency & trust, 75 against 50

Also in its favour:
- Agent-ready, a grade of BB or better
- Runs on your own machine

Watch for: Client order ids are only recommended to be unique and no duplicate rejection is documented, so a retried order can execute twice


## Why the edge

### Schema & documentation: Gemini Exchange API +30

- dYdX (58): No OpenAPI file found for the indexer; the docs publish a types reference of about 200 pages (OrderSide, TimeInForce, OrderStatus and the rest) and the chain's protobuf messages are in the clients (8 of 25). llms.txt and Markdown docs (10). Endpoint pages describe each call and the guides say when to use short-term against long-term orders and the indexer against the node, but descriptions are short (12 of 20). Enums and types on every field in the reference, with pagination and cursor parameters typed (11 of 15). Examples in Python, TypeScript and Rust for each step; errors are described by HTTP status (400 malformed, 404 not found) with no code list (9 of 15). A /v4 path, protocol releases dated on the status page, deprecated rate-limit fields marked, but no API changelog (8 of 15). Total 58.
- 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.

### Transparency & trust: Gemini Exchange API +25

- dYdX (50): The editorial half. Clients AGPL-3.0 with a terms-bound use condition, the chain under a custom licence, two terms documents (dYdX Trading Inc.'s v4 terms of 12 March 2026 and dYdX International Ltd's of 6 June 2025) that are clear about who runs nothing (22 of 30). The privacy policy of 6 June 2025 names dYdX International Ltd, keeps technical data until no longer necessary with no periods, and names no subprocessors; nothing covers the unnamed indexer operator (12 of 30). Protocol upgrades and the WebSocket compression change were posted as dated maintenance notices, deprecated rate-limit fields are marked, but no deprecation policy or notice period is stated (10 of 20). The policy says data may be processed in the EEA and elsewhere, with no subprocessor list (6 of 20). Total 50.
- 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.

### Payments & pricing: dYdX +20

- dYdX (60): No machine payment protocol (0). Fees public per tier without login (20). Testnet with a faucet and no card anywhere (20). No signup; an agent with a funded wallet trades, subject to the geographic terms (20). Total 60.
- 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.

### Agent ergonomics: Gemini Exchange API +13

- dYdX (66): An API, read for response sizing. `limit` on list endpoints, candles by resolution, sparklines by period; the order book comes whole (16 of 25). `limit`, `page` on fills, transfers and funding, and height or time cursors (16 of 20). Indexer errors are a status and a sentence; order rejections come back from the chain as transaction results the clients surface (8 of 20). Unique 32-bit client IDs, `goodTilBlock` expiry on short-term orders, cancel by order ID; no MCP annotations apply (14 of 20). Few required fields with market parameters fetched for unit conversion, and official clients in TypeScript, Python and Rust (12 of 15). Total 66.
- Gemini Exchange API (79): Graded on the REST API, with the MCP server noted. Order book depth, trade and candle counts can be limited and symbols filtered; the MCP server lists 87 tools with no toolset or read-only subset switch, so a session that loads it pays for all of them (18 of 25). Timestamps, `limit_trades`, `since` and per-symbol filters on history, pagination on prediction-market lists (16 of 20). Errors carry a reason and message an agent can branch on, such as InsufficientFunds, MarketNotOpen and MissingRole, though some messages only say to retry later (16 of 20). client_order_id is echoed back but not checked for duplicates, cancel-all-session-orders and the heartbeat limit damage; the MCP server publishes readOnlyHint and destructiveHint on every tool and gates destructive ones on `confirm: true` (14 of 20). Few required parameters, sensible defaults, and official TypeScript and Go SDKs (15). 18 + 16 + 16 + 14 + 15 = 79.

### Reliability: dYdX +10

- dYdX (83): Read with the hosted lines on the indexer API and the chain endpoints the clients submit to. status.dydx.trade is an Atlassian Statuspage with Frontends, dYdX Chain, Indexer, Order Gateway and Client Libraries components and an RSS history (20). From 1 August to 3 November 2026 the feed has eight items, seven scheduled maintenance windows of 29 minutes to 2 hours (indexer on 9 September, 8 and 15 October, protocol v9.7 on 11 September and v9.8.0 on 12 October, WebSocket compression on 26 and 28 October) and one degraded instant-deposit path through an onboarding partner from 24 to 29 September, outside the trading API. Clean or trivial (30). Rate limits documented with numbers for the indexer, the block limits and the public nodes (15). No 429 shape or Retry-After for the indexer; short-term orders expire by `goodTilBlock` and client IDs let an agent find an order after a timeout (8 of 15). No SLA (0). Mainnet generally available; the Order Entry Gateway is marked testnet-only (10). 20 + 30 + 15 + 8 + 0 + 10 = 83.
- 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.

### Maintenance & community: Gemini Exchange API +5

- dYdX (83): Read on the clients and the chain. v4-clients was pushed on 29 October 2026 and protocol v9.8.0 shipped on 12 October (30). Protocol v9.7 on 11 September, v9.8.0 on 12 October, v4-client-js tags 3.5.0 and 3.6.0, three or more in 90 days (20). A Discord, a help centre and 36 open issues on v4-clients whose replies couldn't be read (12 of 25). Official SDKs current, the TypeScript client at 3.6.0 and the Python client at 1.1.6 from February 2026 (12 of 15). CI workflows for lint, test, publish and audit, with trusted publishing and provenance on npm (9 of 10). Total 83.
- 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.

## Score by category

| Category | Weight | dYdX | Gemini Exchange API | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 83 | 73 | dYdX +10 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 58 | 88 | Gemini Exchange API +30 |
| Agent ergonomics | 13% (16.2 this run) | 66 | 79 | Gemini Exchange API +13 |
| Security & auth | 14% (17.5 this run) | 78 | 78 | even |
| Payments & pricing | 10% (12.5 this run) | 60 | 40 | dYdX +20 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 83 | 88 | Gemini Exchange API +5 |
| Transparency & trust | 7% (8.8 this run) | 50 | 75 | Gemini Exchange API +25 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **69.5 · B** | **74.6 · BB** | |

## Facts side by side

| Fact | dYdX | Gemini Exchange API |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | dYdX Trading Inc. | Gemini Trust Company, LLC |
| Hosted endpoint | no (local only) | no (local only) |
| Transports |  | stdio |
| Auth | OAuth or key | OAuth or key |
| Pricing | Pay per use | Pay per use |
| x402 | no | no |
| Licence | The clients are AGPL-3.0 with a use condition tied to the v4 Terms of Use; the chain software (dydxprotocol/v4-chain) carries a custom licence GitHub cannot classify. The hosted indexer at indexer.dydx.trade and the front end are run by third parties, not dYdX Trading Inc. | 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 |
| Tools exposed | 0 | 87 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| Last release | 2026-10-29 | 2026-10-28 |
| Terms last updated | 2026-03-12 | couldn't be read |
| Privacy policy last updated | 2025-06-06 | no date given |
| Customer content may train models | not found in the text | yes |
| Terms restrict automated access | not found in the text | couldn't be read |
| Terms restrict benchmarking | not found in the text | couldn't be read |
| Terms or service can change without notice | yes | couldn't be read |
| Arbitration or class-action waiver | yes | couldn't be read |
| Popularity | 119 stars, 86k npm/wk | 8 stars, 99 npm/wk |

## Verdicts

**dYdX.** dYdX gives an agent keyless indexer reads, permissioned keys limited by message type, subaccount and market, a Statuspage with a clean 90 days, published fees and a testnet with a faucet. There is no official MCP server or OpenAPI file, orders are chain transactions signed by the clients, and no one entity operates the hosted endpoints.

**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.

## Before you call either

### dYdX

1. Ask the account owner for an authenticator limited to `/dydxprotocol.clob.MsgPlaceOrder` and `MsgCancelOrder` on one subaccount, and keep its private key out of prompts
2. Set a unique 32-bit `clientId` on every order and look it up on `/v4/orders` after a timeout; short-term orders expire with `goodTilBlock` (at most 20 blocks ahead)
3. Stay under 2 stateful orders a block and 20 per 100 blocks; failed placements count, so use short-term orders for active trading
4. Enable permessage-deflate on the indexer WebSocket; since 26 October 2026 connections without compression may be refused with 426
5. Check `/v4/geo` and the compliance screen before trading for a person, since the terms exclude the United States, Canada and the United Kingdom

### Gemini Exchange API

1. 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
2. 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
3. Start on api.sandbox.gemini.com with the same code; sandbox apps register at once, production OAuth apps wait for Gemini's review
4. 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
5. Check the person's country against the availability page first; UK, EEA and Australian accounts were closed on 6 April 2026

## Questions

### Which is better for AI agents, dYdX or Gemini Exchange API?

Gemini Exchange API scores 74.6 (BB) on agent readiness against dYdX's 69.5 (B), and leads in 4 of 7 scored categories. dYdX leads on reliability and payments & pricing.

### Do dYdX and Gemini Exchange API need an API key?

Both take an API key or an OAuth sign-in.

### Can an agent call dYdX and Gemini Exchange API without installing anything?

No hosted endpoint is listed for dYdX. Gemini Exchange API runs on your own machine, with no hosted endpoint listed.

### Are dYdX and Gemini Exchange API open source?

dYdX is open source (The clients are AGPL-3.0 with a use condition tied to the v4 Terms of Use; the chain software (dydxprotocol/v4-chain) carries a custom licence GitHub cannot classify. The hosted indexer at indexer.dydx.trade and the front end are run by third parties, not dYdX Trading Inc.). No open-source release is listed for Gemini Exchange API.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dydx-vs-gemini-exchange.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "dydx", "b": "gemini-exchange"}`. From a terminal: `anchor compare dydx gemini-exchange`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dydx.json and https://www.anchorterminal.com/api/v1/tools/gemini-exchange.json

## Other comparisons with dYdX or Gemini Exchange API

- [Bitfinex API vs dYdX](https://www.anchorterminal.com/compare/bitfinex-vs-dydx.md)
- [Bitfinex API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitfinex-vs-gemini-exchange.md)
- [Bitget vs dYdX](https://www.anchorterminal.com/compare/bitget-vs-dydx.md)
- [Bitget vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitget-vs-gemini-exchange.md)
- [Bithumb Open API vs dYdX](https://www.anchorterminal.com/compare/bithumb-vs-dydx.md)
- [Bithumb Open API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bithumb-vs-gemini-exchange.md)
- [Bitstamp API vs dYdX](https://www.anchorterminal.com/compare/bitstamp-vs-dydx.md)
- [Bitstamp API vs Gemini Exchange API](https://www.anchorterminal.com/compare/bitstamp-vs-gemini-exchange.md)
- [Bybit vs dYdX](https://www.anchorterminal.com/compare/bybit-vs-dydx.md)
- [Bybit vs Gemini Exchange API](https://www.anchorterminal.com/compare/bybit-vs-gemini-exchange.md)
- [Crypto.com Exchange API vs dYdX](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-dydx.md)
- [Crypto.com Exchange API vs Gemini Exchange API](https://www.anchorterminal.com/compare/crypto-com-exchange-vs-gemini-exchange.md)
- [dYdX vs Uniswap Trading API](https://www.anchorterminal.com/compare/dydx-vs-uniswap.md)
- [dYdX vs Upbit Open API](https://www.anchorterminal.com/compare/dydx-vs-upbit.md)
- [Gate vs Gemini Exchange API](https://www.anchorterminal.com/compare/gate-io-vs-gemini-exchange.md)
- [Gemini Exchange API vs HTX trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-htx.md)
- [Gemini Exchange API vs Hyperliquid](https://www.anchorterminal.com/compare/gemini-exchange-vs-hyperliquid.md)
- [Gemini Exchange API vs Kraken API](https://www.anchorterminal.com/compare/gemini-exchange-vs-kraken.md)
- [Gemini Exchange API vs KuCoin](https://www.anchorterminal.com/compare/gemini-exchange-vs-kucoin.md)
- [Gemini Exchange API vs MEXC API](https://www.anchorterminal.com/compare/gemini-exchange-vs-mexc.md)
- [Gemini Exchange API vs OKX API](https://www.anchorterminal.com/compare/gemini-exchange-vs-okx.md)
- [Gemini Exchange API vs Uniswap Trading API](https://www.anchorterminal.com/compare/gemini-exchange-vs-uniswap.md)
- [Gemini Exchange API vs Upbit Open API](https://www.anchorterminal.com/compare/gemini-exchange-vs-upbit.md)
- [Binance API vs Gemini Exchange API](https://www.anchorterminal.com/compare/binance-vs-gemini-exchange.md)
- [Coinbase Advanced Trade API vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-gemini-exchange.md)
- [Coinbase MCP server (Coinbase for Agents) vs Gemini Exchange API](https://www.anchorterminal.com/compare/coinbase-mcp-vs-gemini-exchange.md)
- [Binance API vs dYdX](https://www.anchorterminal.com/compare/binance-vs-dydx.md)
- [Coinbase Advanced Trade API vs dYdX](https://www.anchorterminal.com/compare/coinbase-advanced-trade-vs-dydx.md)
- [Deribit vs dYdX](https://www.anchorterminal.com/compare/deribit-vs-dydx.md)
- [Deribit vs Gemini Exchange API](https://www.anchorterminal.com/compare/deribit-vs-gemini-exchange.md)
- [dYdX vs Gate](https://www.anchorterminal.com/compare/dydx-vs-gate-io.md)
- [dYdX vs HTX trading API](https://www.anchorterminal.com/compare/dydx-vs-htx.md)
- [dYdX vs Hyperliquid](https://www.anchorterminal.com/compare/dydx-vs-hyperliquid.md)
- [dYdX vs Kraken API](https://www.anchorterminal.com/compare/dydx-vs-kraken.md)
- [dYdX vs KuCoin](https://www.anchorterminal.com/compare/dydx-vs-kucoin.md)
- [dYdX vs MEXC API](https://www.anchorterminal.com/compare/dydx-vs-mexc.md)
- [dYdX vs OKX API](https://www.anchorterminal.com/compare/dydx-vs-okx.md)
- [Coinbase MCP server (Coinbase for Agents) vs dYdX](https://www.anchorterminal.com/compare/coinbase-mcp-vs-dydx.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
