Cryptocurrency — entry 036 of 53
Gemini
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.
GreatAPIs Score
Auth quickstart
- 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.
- 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.
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
{
"bid": "64449.09000",
"ask": "64449.10000",
"last": "64449.09000",
"volume": {
"BTC": "37.99556645",
"USD": "2448779.6817370305",
"timestamp": 1785042420000
}
}Developer reference
https://api.gemini.comPublic 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.