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.

Overview
Spot
    OverviewGet started
    Orders API
      Order Placement & Management
        Create New OrderCancel OrderCancel All Active OrdersCancel All Session OrdersWrap OrderHeartbeat
      Order Status & Trade History
      Volume & Account Tiers
    Market Data API
    Fund Management API
    Instant Orders API
    WebSocket API
    FIX API
Margin
    Overview
    Margin REST API
      Get Margin Account SummaryGet Margin Interest RatesPreview Margin Order Impact
Staking
    Overview
    Staking REST API
      List Staking BalancesStake Crypto FundsUnstake Crypto FundsList Staking Event HistoryList Staking RatesList Staking Rewards
Clearing
    Clearing REST API
      Clearing Orders
      Broker & Trade Operations

Heartbeat

TradingOrdersHeartbeat

Heartbeat

POSThttps://api.gemini.com/v1/heartbeat

Prevents a session from timing out and canceling active orders when the require-heartbeat flag is set on the API key. Only required if no other private API requests have been made — the arrival of any message resets the heartbeat timer.

POSTv1/heartbeat
curl --request POST \
  --url https://api.gemini.com/v1/heartbeat \
  --header 'Content-Type: application/json' \
  --header 'X-GEMINI-APIKEY: <string>' \
  --header 'X-GEMINI-PAYLOAD: <string>' \
  --header 'X-GEMINI-SIGNATURE: <string>' \
  --data '
{
  "request": "/v1/heartbeat",
  "nonce": "<nonce>"
}
'

Roles

Any authenticated API key may call this endpoint. See Require Heartbeat for background on the heartbeat flag and session behavior.

Headers

X-GEMINI-APIKEYstring·required
Your API key
X-GEMINI-SIGNATUREstring·required
HEX-encoded HMAC-SHA384 of payload signed with API secret
X-GEMINI-PAYLOADstring·required
Base64-encoded JSON payload
Content-Typestring
Default: text/plain
Content-Lengthstring
Default: 0
Cache-Controlstring
Default: no-cache

Request Body

requeststring
The literal string `/v1/heartbeat`
noncestring | integer
Gemini strongly recommends using milliseconds instead of seconds for timestamps.
Timestamp format
Example
Supported request type
string (seconds)
'1495127793'
POST only
string (milliseconds)
'1495127793000'
POST only
whole number (seconds)
1495127793
GET, POST
whole number (milliseconds)
1495127793000
GET, POST
Example request body
{
  "request": "/v1/heartbeat",
  "nonce": "<nonce>"
}

Responses

The heartbeat was received successfully

resultstring
okExample: ok
Example Responses
{
  "result": "ok"
}
PreviousWrap OrderNextMarket Data