Gemini Crypto Exchange Logo

Error Codes

If a response is in error, then the HTTP response code will be set to reflect this, and a JSON body will be returned that will contain information about the failure.

HTTP Error Codes

HTTP StatusMeaning
200Request was successful
30xAPI entry point has moved, see Location: header. Most likely an http: to https: redirect.
400Market not open, or the request was malformed; in the case of a private API request, missing or malformed Gemini private API authentication headers
403The API key is missing the role necessary to access this private API endpoint
404Unknown API entry point or Order not found
406Insufficient Funds
429Rate Limiting was applied
500The server encountered an error
502Technical issues are preventing the request from being satisfied
503The exchange is down for maintenance

Error payload

In the event of an error, a non-200 error code will be returned, and the response body will be a json object with three fields:

  1. result, which will always be "error"
  2. reason, which will be one of the strings listed in the table below
  3. message, a human-readable English string indicating additional error information.
ReasonMeaning
ClientOrderIdTooLongThe Client Order ID must be under 100 characters
ClientOrderIdMustBeStringThe Client Order ID must be a string
ConflictingOptionsNew orders using a combination of order execution options are not supported
ConflictingAccountNameThe specified name is already in use within the master group
EndpointMismatchThe request was submitted to an endpoint different than the one in the payload
EndpointNotFoundNo endpoint was specified
GTSTradeIDMustBeStringThe Clearing ID must be a string
InsufficientFundsThe order was rejected because of insufficient funds
InvalidJsonThe JSON provided is invalid
InvalidNonceThe nonce was not greater than the previously used nonce or was not within +/- 30 seconds of Unix Epoch timestamp
InvalidOrderTypeAn unknown order type was provided
InvalidPriceFor new orders, the price was invalid
InvalidStopPriceFor new stop limit orders, the price was invalid
InvalidStopPriceSellFor new stop limit sell orders, the "stop_price" price was lower than the "sell" price
InvalidStopPriceBuyFor new stop limit buy orders, the "stop_price" price was greater than the "buy" price
InvalidStopPriceRatioFor new stop limit orders, the "buy" or "sell" price was not within 50% of the "stop_price"
InvalidQuantityA negative or otherwise invalid quantity was specified
InvalidSideFor new orders, and invalid side was specified
InvalidSignatureThe signature did not match the expected signature
InvalidSymbolAn invalid symbol was specified
InvalidTimestampInPayloadThe JSON payload contained a timestamp parameter with an unsupported value.
InvalidAccountNameThe specified name did not match any accounts within the master group
InvalidAccountTypeThe specified type did not match exchange or custody
InvalidFundTransferThe fund transfer was not successful
MaintenanceThe system is down for maintenance
MarketNotOpenThe order was rejected because the market is not accepting new orders
MissingAccountNameA required account name was not specified in a field requiring one
MissingAccountsA required account field was not specified
MissingApikeyHeaderThe X-GEMINI-APIKEY header was missing
MissingOrderFieldA required order_id field was not specified
MissingRoleThe API key used to access this endpoint does not have the required role assigned to it
MissingPayloadHeaderThe X-GEMINI-PAYLOAD header was missing
MissingPayloadKeyThe payload is missing a required key
MissingSignatureHeaderThe X-GEMINI-SIGNATURE header was missing
MissingNameA required name field was not specified
MissingNonceA nonce was not provided in the payload. See Private API Invocation for more detail.
MoreThanOneAccountMore than one account was specified on an API that only accepts a single account
AccountClosedAccount account is closed and cannot be used for this operation.
AccountsOnGroupOnlyApiThe account field was specified on a non-master API key
AccountLimitExceededThe account field specified more than the maximum supported accounts for that API
NoAccountOfTypeRequiredThe account field specified multiple accounts and some were not of the required account type
AccountNotOfTypeRequiredThe account specified in the account field was not of the required account type
NotGroupApiCompatibleA master API key was used to invoke an account only API
ExceededMaxAccountsInGroupAn account could not be created as the master group already has the maximum number of allowed accounts in it
NoSSLYou must use HTTPS to access the API
OptionsMustBeArrayThe options parameter must be an array.
OrderNotFoundThe order specified was not found
RateLimitRequests were made too frequently. See Rate Limits below.
SystemWe are experiencing technical issues
UnsupportedOptionThis order execution option is not supported.
HasNotAgreedToCustodyTermsThe Group has not yet agreed to the Custody terms and conditions. Please visit https://exchange.gemini.com/custody to read the terms and conditions of custody accounts.
BadAccountTypeThe type parameter must contain a string of either exchange or custody.
RemoteAddressForbiddenRequest received from an IP address that is not whitelisted under the group.