GeminiGemini
Demo environmentGet API key
  • Overview
  • Crypto Trading
  • Prediction Markets
  • Perpetuals
  • Stocks
  • API Reference
  • SDKs & Tools
Changelog
Gemini logoGemini logo

© 2026 Gemini Space Station, Inc.

API Reference overview
REST
    Orders
    Market Data
    Margin Trading
    Staking
    Clearing
    Instant Orders
    Fund Management
    Derivatives
    Prediction markets
    Common
      OAuth
        Authorization RequestGet Access TokenRefresh Access TokenRevoke Access Token
      Admin
WebSocket
    Core protocol
      IntroductionCoreAuthenticationCoreMessage formatCore
      Shared streams
        Book tickerL2 partial depthL2 differential depthTrade streamOrder eventsBalance updates
      Shared methods
    Prediction-market extensions
      Streams
        Position updatesPredictionContract statusPrediction
      Combo RFQ
        OverviewPredictionWebSocket streamsPredictionQuote methodsPredictionMaker integrationPredictionExamplesPrediction
FIX
Authentication and account context
Prediction markets schemas

Refresh Access Token

REST APIsCommonOAuthRefresh Access Token

Refresh Access Token

POSThttps://exchange.gemini.com/auth/token

The access token you receive will be relatively short-lived (default 24 hours). Once an access token has expired you can use your refresh token to generate a new access token. Refresh tokens never expire, however they are one-time use only — your request for a new access token will also return a new refresh token.

Public clients

Public clients omit
Code
client_secret
on refresh. Refresh requests never include
Code
code_verifier
.
POSTauth/token
curl --request POST \
  --url https://exchange.gemini.com/auth/token \
  --header 'Content-Type: application/json' \
  --data '
{
  "client_id": "my_id",
  "client_secret": "my_secret",
  "refresh_token": "215c5a89-6df7-457b-ba0b-70695da8c91f",
  "grant_type": "refresh_token"
}
'

Request Body

client_idstring·required
Unique ID of your application.
client_secretstring
Secret of your application, provided when you register a confidential client in API settings. Confidential clients only — public clients must not send this.
refresh_tokenstring·required
Your refresh token.
grant_typestring·required
The literal string "refresh_token".Example: refresh_token
Example request body
{
  "client_id": "my_id",
  "client_secret": "my_secret",
  "refresh_token": "215c5a89-6df7-457b-ba0b-70695da8c91f",
  "grant_type": "refresh_token"
}

Responses

New access and refresh tokens successfully issued

access_tokenstring
A short-lived token to use in API call authentication.
refresh_tokenstring
A new refresh token to be used to generate future access tokens.
token_typestring
The literal string "bearer".
scopestring
The OAuth scopes the access token will have access to.
expires_ininteger
The lifetime in seconds of the access token, as measured from the current time.
Example Responses
{
  "access_token": "c5e9459d-dc6f-4567-bce4-050ec965f22e",
  "expires_in": 86399,
  "scope": "balances:read,orders:create",
  "refresh_token": "ce0f14af-74dd-4767-a4e7-286e98b944c1",
  "token_type": "bearer"
}
PreviousGet Access TokenNextRevoke Access Token