Cryptocurrency — entry 036 of 53

Gemini

Verified Jul 2026

Gemini's REST and WebSocket APIs cover public market data (tickers, order books, trade history) alongside authenticated endpoints for order placement, account status, and FIX Drop Copy. Public market-data calls need no credentials, while trading and account endpoints require an HMAC-signed API key/secret pair with role-based permissions such as separate Trader and Fund Manager roles.

Gemini's public REST endpoints expose live order book, ticker, and trade-history data for its exchange with no signup, while placing orders or checking account/balance data moves to a separate, HMAC-signed private API tier.

exchangetradingmarket-datawebsocket
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, WebSocketResponses can be requested as JSON or WebSocket.

GreatAPIs Score

Score80out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs0/20No docs or spec available
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 80 on greatapis.com
<a href="https://greatapis.com/api/gemini/"><img src="https://greatapis.com/badge/gemini.svg" alt="Scored 80 on greatapis.com"></a>

Auth quickstart

  1. No API key required for public market-data endpoints (`/v1/pubticker/*`, `/v1/book/*`, `/v2/candles/*`, etc.). Private trading/account endpoints are a different tier: they require an `X-GEMINI-APIKEY` plus an `X-GEMINI-SIGNATURE` — a hex-encoded HMAC-SHA384 of a base64-encoded, nonce-bearing JSON payload — and are out of scope for this keyless quickstart.
  2. Stay under Gemini's published public-endpoint ceiling of 120 requests/minute (recommended: no more than 1/second); Gemini queues a small burst of 5 extra requests before returning 429.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Get the current public ticker for BTC/USD

GEThttps://api.gemini.com/v1/pubticker/btcusd

200 application/json

{
  "bid": "64449.09000",
  "ask": "64449.10000",
  "last": "64449.09000",
  "volume": {
    "BTC": "37.99556645",
    "USD": "2448779.6817370305",
    "timestamp": 1785042420000
  }
}

Developer reference

Base URLhttps://api.gemini.com
Rate limit

Public API entry points: 120 requests/minute (recommended ≤1/second), with a 5-request burst allowance; private/trading entry points: 600 requests/minute (recommended ≤5/second) — per Gemini's own rate-limit docs.

Gotchas & limits

  • Symbols are lowercase and unpunctuated (`btcusd`, not `BTC-USD` or `BTC/USD`) — fetch the full list from `/v1/symbols` rather than guessing the format.
  • Every price and volume field is returned as a JSON string, including the amounts nested inside the `volume` object — don't assume numeric types.
  • `volume.timestamp` is a millisecond Unix epoch (13 digits) sitting inside an otherwise all-string object — easy to mis-parse as seconds.
  • The stored `auth: "None"` covers only public `/v1/pub*` and `/v2/...` market-data routes; trading and account endpoints need the separate HMAC-SHA384-signed private API. Gemini also runs an independent sandbox host (`api.sandbox.gemini.com`) with paper-trading data for testing before going live.