GeminiGemini
SandboxGet API key
  • Crypto Trading
  • Prediction Markets
Changelog
Gemini Crypto Exchange LogoGemini Crypto Exchange Logo

© 2026 Gemini Space Station, Inc.

REST APIs
    Orders
      Create New OrderCancel OrderCancel All Active OrdersCancel All Session OrdersGet Order StatusList Active OrdersList Past OrdersList Past TradesGet Trading VolumeGet Notional Trading VolumeWrap OrderHeartbeat
    Market Data
    Derivatives
    Margin Trading
    Staking
    Clearing
    Instant Orders
    Fund Management
WebSocket
    AuthenticationMessage Format
    Streams
      Book TickerL2 Partial DepthL2 Differential DepthTrade StreamOrder EventsBalance Updates
    Playground
      Overviewconninfopingtimesubscribeunsubscribelist_subscriptionsdepthorder.placeorder.cancelorder.cancel_allorder.cancel_session
Agentic
FIX

Get Order Status

TradingOrdersGet Order Status

Get Order Status

POSThttps://api.gemini.com/v1/order/status

Get the status for an order.

Note

Gemini recommends using our WebSocket Order Events API to receive order status changes. It's much better because you'll be notified of order status changes as they happen.

Under the terms of the Gemini API Agreement, polling this endpoint may be subject to rate limiting.

Enabled for perpetuals accounts from July 10th, 0100hrs ET onwards. Trade info for all perpetuals orders submitted prior to this timing, will not be available through this API.

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

Roles

The API key you use to access this endpoint must have the Trader role assigned. See Roles for more information.

The OAuth scope must have orders:read assigned to access this endpoint. See OAuth Scopes for more information.

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·required
The API endpoint pathExample: /v1/order/status
noncestring | integer·required
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: 1495127793000
accountstring
Required for Master API keys as described in [Private API Invocation](/authentication/api-key#private-api-invocation). The name of the account within the subaccount group. Specifies the account on which you intend to place the order. Only available for exchange accounts.Example: primary
order_idinteger·required
The order id to get information on. The `order_id` represents a whole number and is transmitted as an unsigned 64-bit integer in JSON format. `order_id` cannot be used in combination with `client_order_id`.Example: 123456789012345
client_order_idstring
The `client_order_id` used when placing the order. `client_order_id` cannot be used in combination with `order_id`
include_tradesboolean
Either `True` or `False`. If `True` the endpoint will return individual trade details of all fills from the order.
Example request body
{
  "request": "/v1/order/status",
  "nonce": "<nonce>",
  "order_id": 123456789012345,
  "include_trades": true
}

Responses

The order status

order_idstring (integer)
The order id
client_order_idstring (integer)
An optional [client-specified order id](/client-order-id#client-order-id)
symbolstring
The [symbol](/market-data/symbols-and-minimums#symbols-and-minimums) of the order
exchangestring
Will always be "gemini"
pricestring (decimal)
The price the order was issued at
avg_execution_pricestring (decimal)
The average price at which this order as been executed so far. 0 if the order has not been executed at all.
sidestring·enum
Enum values: buysell
typestring·enum
Description of the orderEnum values: exchange limitexchange stop limitexchange market
optionsarray
An array containing at most one supported order execution option. See [Order execution options](/rest/orders#create-new-order) for details.
timestampstring | 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: 1495127793000
timestampmsstring | 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: 1495127793000
is_liveboolean
`true` if the order is active on the book (has remaining quantity and has not been canceled)
is_cancelledboolean
`true` if the order has been canceled. Note the spelling, "cancelled" instead of "canceled". This is for compatibility reasons.
reasonstring
Populated with the reason your order was canceled, if available.
was_forcedboolean
Will always be `false`.
executed_amountstring (decimal)
The amount of the order that has been filled.
remaining_amountstring (decimal)
The amount of the order that has not been filled.
original_amountstring (decimal)
The originally submitted amount of the order.
is_hiddenboolean
Will always return `false`.
tradesarray
Contains an array of JSON objects with trade details.
trades[].pricestring (decimal)
The price that the execution happened at
trades[].amountstring (decimal)
The quantity that was executed
trades[].timestampstring | 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: 1495127793000
trades[].timestampmsstring | 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: 1495127793000
trades[].typestring·enum
Will be either "Buy" or "Sell", indicating the side of the original orderEnum values: BuySellExample: Buy
trades[].aggressorboolean
If `true`, this order was the taker in the trade
trades[].fee_currencystring
Currency that the fee was paid inExample: USD
trades[].fee_amountstring (decimal)
The amount chargedExample: 1.23
trades[].tidinteger
Unique identifier for the tradeExample: 17379712930
trades[].order_idstring
The order that this trade executed againstExample: 123456789
trades[].exchangestring
Will always be "gemini"Example: gemini
trades[].breakstring
Will only be present if the trade is broken. See `Break Types` below for more information.
Example Responses
{
  "order_id": "123456789012345",
  "id": "123456789012345",
  "symbol": "btcusd",
  "exchange": "gemini",
  "avg_execution_price": "400.00",
  "side": "buy",
  "type": "exchange limit",
  "timestamp": "1494870642",
  "timestampms": 1494870642156,
  "is_live": false,
  "is_cancelled": false,
  "is_hidden": false,
  "was_forced": false,
  "executed_amount": "3",
  "remaining_amount": "0",
  "options": [],
  "price": "400.00",
  "original_amount": "3"
}
PreviousCancel All Session OrdersNextList Active Orders
Last modified on May 5, 2026