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.

Get started
    IntroductionDemo environment
Platform
    Platform overview
    Authentication
      API keysOAuth 2.0
    AccountsRoles & permissionsInstruments & symbolsClient order IDsRate limitsErrors
Build with Gemini
    Build an agent
Resources
Platform

Error Codes

When an API request fails, Gemini returns an HTTP 4xx or 5xx status code and a JSON response body detailing the failure.

HTTP Error Codes

HTTP StatusMeaning
200Request succeeded
30xAPI entry point moved. Check the Location header for redirect URL.
400Market not open, malformed request, or invalid authentication headers
403API key lacks the required role for this endpoint
404Unknown endpoint or order not found
406Insufficient funds
429Rate limit exceeded
500Server encountered an error
502Technical issues prevented request fulfillment
503Exchange is down for maintenance

Error payload

Failed requests return a non-200 HTTP status code and a JSON body containing three fields:

  1. result: Always "error".
  2. reason: A short machine-readable error identifier from the table below.
  3. message: A human-readable description of the error.
ReasonMeaning
ClientOrderIdTooLongClient Order ID must not exceed 100 characters
ClientOrderIdMustBeStringClient Order ID must be a string
ConflictingOptionsSelected order execution options conflict with each other
ConflictingAccountNameSpecified name is already in use within the master group
EndpointMismatchRequest path does not match the endpoint specified in payload
EndpointNotFoundNo endpoint specified
GTSTradeIDMustBeStringClearing ID must be a string
InsufficientFundsOrder rejected due to insufficient funds
InvalidJsonRequest body contains invalid JSON
InvalidNonceNonce is not strictly greater than previous nonce or falls outside +/- 30 seconds of server epoch
InvalidOrderTypeUnsupported or unknown order type
InvalidPriceInvalid price specified for order
InvalidStopPriceInvalid stop price specified for stop-limit order
InvalidStopPriceSellStop price for stop-limit sell order was below the sell price
InvalidStopPriceBuyStop price for stop-limit buy order was above the buy price
InvalidStopPriceRatioStop price deviates more than 50% from the limit price
InvalidQuantityInvalid or negative order quantity specified
InvalidSideInvalid order side specified (must be buy or sell)
InvalidSignatureRequest signature did not match payload and API secret
InvalidSymbolUnknown or invalid symbol
InvalidTimestampInPayloadPayload contains an unsupported timestamp value
InvalidAccountNameAccount name does not match any account in the master group
InvalidAccountTypeAccount type must be exchange or custody
InvalidFundTransferInternal fund transfer failed
MaintenanceExchange is down for scheduled maintenance
MarketNotOpenMarket is currently not accepting new orders
MissingAccountNameRequired account name omitted
MissingAccountsRequired account field omitted
MissingApikeyHeaderMissing X-GEMINI-APIKEY HTTP header
MissingOrderFieldRequired order_id field omitted
MissingRoleAPI key lacks the required role for this endpoint
MissingPayloadHeaderMissing X-GEMINI-PAYLOAD HTTP header
MissingPayloadKeyPayload is missing a required parameter
MissingSignatureHeaderMissing X-GEMINI-SIGNATURE HTTP header
MissingNameRequired name field omitted
MissingNonceMissing nonce in payload. See Private API Invocation.
MoreThanOneAccountMultiple accounts supplied to a single-account endpoint
AccountClosedAccount is closed and cannot perform this operation
AccountsOnGroupOnlyApiAccount parameter supplied to a group-level endpoint using a non-master key
AccountLimitExceededNumber of accounts exceeds the endpoint limit
NoAccountOfTypeRequiredSpecified accounts do not match the required account type
AccountNotOfTypeRequiredSpecified account does not match the required account type
NotGroupApiCompatibleMaster API key used on an account-only endpoint
ExceededMaxAccountsInGroupCannot create account because master group reached its maximum limit
NoSSLHTTPS is required for all API requests
OptionsMustBeArrayParameter options must be an array
OrderNotFoundSpecified order does not exist
RateLimitRequest rate exceeded. See Rate Limits.
SystemInternal server error
UnsupportedOptionSpecified order execution option is not supported
HasNotAgreedToCustodyTermsMaster group has not accepted Custody terms. Review and accept at https://exchange.gemini.com/custody.
BadAccountTypeParameter type must be exchange or custody
RemoteAddressForbiddenRequest originated from an IP address not on the group allowlist
Rate limitsBuild with Gemini
On this page
  • HTTP Error Codes
  • Error payload