openapi: 3.2.0 info: title: REST Market Data API description: 'The Gemini Crypto Exchange REST API allows programmatic access to trade cryptocurrencies and manage your account on the Gemini Exchange platform. The API provides both public and private endpoints for market data, order management, and account operations.' version: 1.0.0 contact: name: Gemini Trading Support email: trading@gemini.com servers: - url: https://api.gemini.com description: Production server - url: https://api.sandbox.gemini.com description: Sandbox server for testing tags: - name: Market Data paths: /v1/symbols: get: tags: - Market Data summary: List Symbols operationId: listSymbols description: This endpoint retrieves all available symbols for trading. responses: '200': description: The full list of supported symbols. content: application/json: schema: type: array items: type: string description: An array of supported [symbols](/market-data/symbols-and-minimums#all-supported-symbols). example: - aavegusd - aaveusd - aligusd - aliusd - ampgusd - ampusd - ankrgusd - ankrusd - apegusd - apeusd - api3gusd - api3usd - arbgusd - arbusd - atomgusd - atomusd - avaxgusd - avaxgusdperp - avaxusd - axsgusd - axsusd - batgusd - batusd - bchgusd - bchgusdperp - bchusd - bnbgusdperp - bomegusd - bomegusdperp - bomeusd - bonkgusd - bonkgusdperp - bonkusd - btceur - btcgbp - btcgusd - btcgusdperp - btcsgd - btcusd - btcusdt - chillguygusd - chillguyusd - chzgusd - chzusd - compgusd - compusd - crvgusd - crvusd - ctxgusd - ctxusd - cubegusd - cubeusd - daigusd - daiusd - dogebtc - dogeeth - dogegusd - dogegusdperp - dogeusd - dotgusd - dotgusdperp - dotusd - efilfil - elongusd - elonusd - ensgusd - ensusd - ethbtc - etheur - ethgbp - ethgusd - ethgusdperp - ethsgd - ethusd - ethusdt - fetgusd - fetusd - filgusd - filusd - flokigusd - flokigusdperp - flokiusd - ftmgusd - ftmusd - galagusd - galausd - gmtgusd - gmtusd - goatgusd - goatgusdperp - goatusd - grtgusd - grtusd - gusdgbp - gusdsgd - gusdusd - hntgusd - hntusd - hypegusdperp - imxgusd - imxusd - injgusd - injgusdperp - injusd - iotxgusd - iotxusd - ksl2gusdperp - kt5gusdperp - ldogusd - ldousd - linkbtc - linketh - linkgusd - linkgusdperp - linkusd - lptgusd - lptusd - lrcgusd - lrcusd - ltcbtc - ltceth - ltcgusd - ltcgusdperp - ltcusd - managusd - manausd - maskgusd - maskusd - maticgusd - maticusd - mewgusd - mewgusdperp - mewusd - mkrgusd - mkrusd - moodenggusd - moodenggusdperp - moodengusd - opgusd - opgusdperp - opusd - oxtgusd - oxtusd - paxggusd - paxgusd - pepegusd - pepegusdperp - pepeusd - pnutgusd - pnutgusdperp - pnutusd - polgusdperp - popcatgusd - popcatgusdperp - popcatusd - pythgusd - pythgusdperp - pythusd - qntgusd - qntusd - raregusd - rareusd - rengusd - renusd - rlusdusd - rndrgusd - rndrusd - samogusd - samousd - sandgusd - sandusd - shibgusd - shibgusdperp - shibusd - sklgusd - sklusd - solbtc - soleth - solgusd - solgusdperp - solusd - storjgusd - storjusd - sushigusd - sushiusd - trumpgusdperp - umagusd - umausd - unigusd - unigusdperp - uniusd - usdcusd - usdtgusd - usdtusd - wifgusd - wifgusdperp - wifusd - xrpgusd - xrpgusdperp - xrpusd - xtzgusd - xtzusd - yfigusd - yfiusd - zecgusd - zecusd - zrxgusd - zrxusd '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/symbols/details/{symbol}: get: tags: - Market Data summary: Get Symbol Details operationId: getSymbolDetails description: This endpoint retrieves extra detail on supported symbols, such as minimum order size, tick size, quote increment and more. parameters: - $ref: '#/components/parameters/symbolParam' responses: '200': description: Instrument responses examples content: application/json: schema: $ref: '#/components/schemas/SymbolDetails' examples: spot: summary: Spot instrument description: Spot instrument response value: symbol: BTCUSD base_currency: BTC quote_currency: USD tick_size: 1.0e-08 quote_increment: 0.01 min_order_size: '0.00001' status: open wrap_enabled: false product_type: spot contract_type: vanilla contract_price_currency: USD perpetual: summary: Perpetual Swap instrument description: Perpetual Swap instrument response value: symbol: BTCETHPERP base_currency: BTC quote_currency: ETH tick_size: 0.0001 quote_increment: 0.5 min_order_size: '0.0001' status: open wrap_enabled: false product_type: swap contract_type: linear contract_price_currency: GUSD '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/networks/{network}/assets: get: tags: - Market Data summary: Get Assets for Network operationId: getAssetsForNetwork description: 'This endpoint retrieves the enabled assets (tokens) available on a specified blockchain network, filtered by your account''s access permissions. This authenticated endpoint returns only the assets where your account has deposit and withdraw access enabled on the specified network. Use this endpoint to discover all tokens that support deposits and withdrawals on a particular blockchain network. The `assets` field in the response is always an array, sorted alphabetically, containing one or more enabled asset codes. ### Roles The API key you use to access this endpoint must have the Fund Manager or Auditor role assigned. See Roles for more information.' parameters: - $ref: '#/components/parameters/apiKeyAuth' - $ref: '#/components/parameters/signatureAuth' - $ref: '#/components/parameters/payloadAuth' - $ref: '#/components/parameters/contentType' - $ref: '#/components/parameters/contentLength' - $ref: '#/components/parameters/cacheControl' - name: network in: path required: true schema: type: string description: 'Blockchain network identifier (lowercase). Supported networks include: `ethereum`, `solana`, `bitcoin`, `optimism`, `arbitrum`, `base`, `monad`, `avalanche`, `litecoin`, `bitcoincash`, `dogecoin`, `zcash`, `filecoin`, `tezos`, `polkadot`, `cosmos`, `xrpl`, `linea`, and more. ' example: ethereum security: - apiKeyAuth: [] signatureAuth: [] payloadAuth: [] responses: '200': description: The response will be a JSON object containing the network name and its supported assets. content: application/json: schema: $ref: '#/components/schemas/NetworkAssets' examples: multi-asset-network: summary: Network with many assets (Ethereum) value: network: ethereum assets: - AAVE - BAT - DAI - ETH - LINK - MATIC - UNI - USDC - USDT - WBTC single-asset-network: summary: Network with single asset (Bitcoin) value: network: bitcoin assets: - BTC stablecoin-network: summary: Network popular for stablecoins (Solana) value: network: solana assets: - BONK - JTO - JUP - PYTH - RAY - RENDER - SOL - USDC '400': description: The supplied network is not supported or has no enabled assets. content: application/json: schema: type: object properties: errorMessage: type: string examples: unsupported-network: summary: Unsupported network value: errorMessage: Supplied value 'foochain' is not a supported network. Please refer to the Supported Networks section at docs.gemini.com and correct your API request. '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/network/{token}: get: tags: - Market Data summary: Get Network operationId: getTokenNetworkV2 description: 'The v1 network endpoint is being retired. This v2 endpoint is the recommended replacement, offering account-level filtering for deposit and withdraw access. Please migrate to this endpoint at your earliest convenience. This endpoint retrieves the associated network(s) for a requested token, filtered by your account''s access permissions. This authenticated endpoint returns only the networks where your account has both deposit and withdraw access enabled. This supports the multinetwork deposit and withdrawal flow. Many tokens are available on multiple blockchain networks. For example, USDC is available on Optimism, Solana, Base, Arbitrum, Avalanche, and Ethereum. Use this endpoint to discover which networks your account can deposit to and withdraw from for a given token. The `network` field in the response is always an array, which may contain one or more supported networks. ### Roles The API key you use to access this endpoint must have the Fund Manager or Auditor role assigned. See Roles for more information.' parameters: - $ref: '#/components/parameters/apiKeyAuth' - $ref: '#/components/parameters/signatureAuth' - $ref: '#/components/parameters/payloadAuth' - $ref: '#/components/parameters/contentType' - $ref: '#/components/parameters/contentLength' - $ref: '#/components/parameters/cacheControl' - name: token in: path required: true schema: type: string description: Token identifier. `BTC`, `ETH`, `USDC`, `SOL` etc. See [**symbols and minimums**](/market-data/symbols-and-minimums) example: USDC security: - apiKeyAuth: [] signatureAuth: [] payloadAuth: [] responses: '200': description: The response will be a JSON object containing the token and its available networks for the authenticated account. content: application/json: schema: $ref: '#/components/schemas/NetworkToken' examples: single-network: summary: Single network token (BTC) value: token: BTC network: - bitcoin multi-network: summary: Multi-network token (USDC) value: token: USDC network: - optimism - solana - base - arbitrum - avalanche - ethereum '400': $ref: '#/components/responses/BadRequest' '404': description: Returned when the token is not supported or the account has no available networks for the requested token. content: application/json: schema: type: object properties: result: type: string example: error reason: type: string example: UnsupportedNetwork message: type: string example: 'UnsupportedNetwork: INVALIDTOKEN' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/pubticker/{symbol}: get: tags: - Market Data summary: Get Ticker operationId: getTicker description: 'This endpoint retrieves information about recent trading activity for the symbol. We recommend using Version 2 to retrieve recent ticker activty.' parameters: - $ref: '#/components/parameters/symbolParam' responses: '200': description: The current ticker for the symbol content: application/json: schema: $ref: '#/components/schemas/Ticker' example: bid: '977.59' ask: '977.35' last: '977.65' volume: BTC: '2210.505328803' USD: '2135477.463379586263' timestamp: 1483018200000 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/book/{symbol}: get: tags: - Market Data summary: Get Current Order Book operationId: getCurrentOrderBook x-zudoku-playground-enabled: false description: 'This will return the current order book as two arrays (bids / asks). The quantities and prices returned are returned as strings rather than numbers. The numbers returned are exact, not rounded, and it can be dangerous to treat them as floating point numbers.' parameters: - $ref: '#/components/parameters/symbolParam' - name: limit_bids in: query description: Limit the number of bid (offers to buy) price levels returned. Default is 50. May be 0 to return the full order book on this side. required: false schema: type: number minimum: 1 - name: limit_asks in: query description: Limit the number of ask (offers to sell) price levels returned. Default is 50. May be 0 to return the full order book on this side. required: false schema: type: number minimum: 1 responses: '200': description: The response will be two arrays. The bids and the asks are grouped by price, so each entry may represent multiple orders at that price. Each element of the array will be a JSON object. content: application/json: schema: $ref: '#/components/schemas/OrderBook' example: bids: - price: '3607.85' amount: '6.643373' timestamp: '1547147541' asks: - price: '3607.86' amount: '14.68205084' timestamp: '1547147541' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/trades/{symbol}: get: tags: - Market Data summary: List Trades operationId: listTrades x-zudoku-playground-enabled: false description: 'This public API endpoint is limited to retrieving seven calendar days of data. Please contact us through this form for information about Gemini market data. This will return the trades that have executed since the specified timestamp. Timestamps are either seconds or milliseconds since the epoch (1970-01-01). See the Data Types section about `timestamp` for information on this. Each request will show at most 500 records. If no `since` or `timestamp` is specified, then it will show the most recent trades; otherwise, it will show the most recent trades that occurred after that timestamp.' parameters: - $ref: '#/components/parameters/symbolParam' - name: timestamp in: query description: 'Only return trades after this timestamp. See [**Timestamps**](/rest/~schemas#timestamp-type) for more information. If not present, will show the most recent trades. For backwards compatibility, you may also use the alias `since`. With timestamp, there is a 90-day hard limit. ' required: false schema: $ref: '#/components/schemas/TimestampType' description: Timestamp in milliseconds - name: since_tid in: query description: 'Only retuns trades that executed after this tid. since_tid trumps timestamp parameter which has no effect if provided too. You may set since_tid to zero to get the earliest available trade history data. ' required: false schema: type: number - name: limit_trades in: query description: 'The maximum number of trades to return. The default is 50. ' required: false schema: type: number minimum: 0 default: 50 - name: include_breaks in: query description: 'Whether to display broken trades. False by default. Can be `1` or `true` to activate ' required: false schema: type: boolean default: false responses: '200': description: The response will be an array of JSON objects, sorted by timestamp, with the newest trade shown first. content: application/json: schema: type: array items: $ref: '#/components/schemas/Trade' example: timestamp: 1547146811 timestampms: 1547146811357 tid: 5335307668 price: '3610.85' amount: '0.27413495' exchange: gemini type: buy broken: true '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/pricefeed: get: tags: - Market Data summary: List Prices operationId: listPrices responses: '200': description: Response is a list of objects, one for each pair. content: application/json: schema: $ref: '#/components/schemas/PriceFeedResponse' example: - pair: BTCUSD price: '9500.00' percentChange24h: '5.23' - pair: ETHUSD price: '257.54' percentChange24h: '4.85' - pair: BCHUSD price: '450.10' percentChange24h: '-2.91' - pair: LTCUSD price: '79.50' percentChange24h: '7.63' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/fundingamount/{symbol}: get: tags: - Market Data summary: Get Funding Amount operationId: getFundingAmount parameters: - name: symbol in: path required: true schema: type: string description: 'Trading pair symbol

`BTCGUSDPERP`, etc. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols). ' example: BTCGUSDPERP responses: '200': description: The response will be an object content: application/json: schema: $ref: '#/components/schemas/FundingAmountResponse' example: symbol: BTCGUSDPERP fundingDateTime: '2025-04-22T18:00:00.000Z' fundingTimestampMilliSecs: 1745344800000 nextFundingTimestamp: 1745348400000 fundingAmount: -1.50991 estimatedFundingAmount: -2.10595 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/nextfundingtimestamp/{symbol}: get: tags: - Market Data summary: Get Next Funding Timestamp operationId: getNextFundingTimestamp parameters: - name: symbol in: path required: true schema: type: string description: 'Trading pair symbol

`BTCGUSDPERP`, etc. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols). ' example: BTCGUSDPERP responses: '200': description: The response will be an integer timestamp in milliseconds. content: application/json: schema: type: integer format: int64 example: 1745348400000 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v1/fundingamountreport/records.xlsx: get: tags: - Market Data summary: Get Funding Amount Report File operationId: getFundingAmountReportFile description: '### Examples - `symbol=BTCGUSDPERP&fromDate=2024-04-10&toDate=2024-04-25&numRows=1000` Compare and obtain the minimum records between (2024-04-10 to 2024-04-25) and 1000. If (2024-04-10 to 2024-04-25) contains 360 records. Then fetch the minimum between 360 and 1000 records only. - `symbol=BTCGUSDPERP&numRows=2024-04-10&toDate=2024-04-25` If (2024-04-10 to 2024-04-25) contains 360 records. Then fetch 360 records only. - `symbol=BTCGUSDPERP&numRows=1000` Fetch maximum 1000 records starting from Now to a historical date - `symbol=BTCGUSDPERP` Fetch maximum 8760 records starting from Now to a historical date' parameters: - name: symbol in: query description: 'Trading pair symbol

`BTCGUSDPERP`, etc. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols). ' required: true schema: type: string - name: fromDate in: query description: Mandatory if `toDate` is specified, else optional. If empty, will only fetch records by numRows value. required: false schema: type: string format: date - name: toDate in: query description: Mandatory if `fromDate` is specified, else optional. If empty, will only fetch records by numRows value. required: false schema: type: string format: date - name: numRows in: query description: If empty, default value '8760' required: false schema: type: integer responses: '200': description: The response will be an excel / csv file. filename=FundingAmount_{SYMBOL}.{xlsx,csv} headers: Content-Disposition: schema: type: string example: attachment; filename=FundingAmount_{SYMBOL}.{xlsx,csv} content: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: schema: type: string format: binary text/csv: schema: type: string format: binary '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/ticker/{symbol}: get: tags: - Market Data summary: Get Ticker V2 operationId: getTickerV2 description: This endpoint retrieves information about recent trading activity for the provided symbol. parameters: - name: symbol in: path required: true schema: type: string description: Trading pair symbol example: BTCUSD responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/TickerInfo' example: symbol: BTCUSD open: '9121.76' high: '9440.66' low: '9106.51' close: '9347.66' changes: - '9365.1' - '9386.16' - '9373.41' - '9322.56' - '9268.89' - '9265.38' - '9245' - '9231.43' - '9235.88' - '9265.8' - '9295.18' - '9295.47' - '9310.82' - '9335.38' - '9344.03' - '9261.09' - '9265.18' - '9282.65' - '9260.01' - '9225' - '9159.5' - '9150.81' - '9118.6' - '9148.01' bid: '9345.70' ask: '9347.67' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/candles/{symbol}/{time_frame}: get: tags: - Market Data summary: List Candles operationId: listCandles description: This endpoint retrieves time-intervaled data for the provided symbol. parameters: - name: symbol in: path required: true schema: type: string description: Trading pair symbol example: BTCUSD - name: time_frame in: path required: true schema: type: string enum: - 1m - 5m - 15m - 30m - 1h - 6h - 1d description: 'Time range for each candle: * `1m` - 1 minute * `5m` - 5 minutes * `15m` - 15 minutes * `30m` - 30 minutes * `1h` - 1 hour * `6h` - 6 hours * `1day` - 1 day ' example: 15m responses: '200': description: The response will be an array of arrays content: application/json: schema: $ref: '#/components/schemas/CandleResponse' example: - - 1559755800000 - 7781.6 - 7820.23 - 7776.56 - 7819.39 - 34.7624802159 - - 1559755800000 - 7781.6 - 7829.46 - 7776.56 - 7817.28 - 43.4228281059 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/derivatives/candles/{symbol}/{time_frame}: get: tags: - Market Data summary: List Derivative Candles operationId: listDerivativeCandles description: This endpoint retrieves time-intervaled data for the provided perpetual symbol. parameters: - name: symbol in: path required: true schema: type: string description: Trading pair symbol. Available only for perpetual pairs like `BTCGUSDPERP` example: BTCGUSDPERP - name: time_frame in: path required: true schema: type: string enum: - 1m description: 'Time range for each candle. `1m`: 1 minute (only)' example: 1m responses: '200': description: The response will be an array of arrays content: application/json: schema: $ref: '#/components/schemas/CandleResponse' example: - - 1714126740000 - 68038 - 68038 - 68038 - 68038 - 0 - - 1714126680000 - 68038 - 68038 - 68038 - 68038 - 0 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' /v2/fxrate/{symbol}/{timestamp}: get: tags: - Market Data summary: FX Rate operationId: getFXRate description: 'We have a growing international institutional customer base. When pulling market data for charting, it can be useful to have access to our FX rate for the relevant currency at that time. Please note, Gemini does not offer foreign exchange services. This endpoint is for historical reference only and does not provide any guarantee of future exchange rates. **Roles** The API key you use to access this endpoint must have the Auditor role assigned. See Roles for more information. **Supported Pairs** ` [AUDUSD, CADUSD, COPUSD, EURUSD, CHFUSD, HKDUSD, NZDUSD, GBPUSD, BRLUSD, INRUSD, SGDUSD, KRWUSD, JPYUSD, CNYUSD] `' parameters: - $ref: '#/components/parameters/symbolParam' - $ref: '#/components/parameters/timestampParam' - $ref: '#/components/parameters/apiKeyAuth' - $ref: '#/components/parameters/signatureAuth' - $ref: '#/components/parameters/payloadAuth' - $ref: '#/components/parameters/contentType' - $ref: '#/components/parameters/contentLength' - $ref: '#/components/parameters/cacheControl' security: - apiKeyAuth: [] signatureAuth: [] payloadAuth: [] responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/FxRate' example: fxPair: AUDUSD rate: '0.69' asOf: 1594651859000 provider: bcb benchmark: Spot '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/ApiKeyIpFilteringFailure' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalError' components: responses: ApiKeyIpFilteringFailure: description: ApiKey fails IP Filtering Check content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' example: result: error reason: ApiKeyIpFilteringFailure message: ApiKey fails IP Filtering Check for some accounts BadRequest: description: Bad request - malformed request or invalid parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: result: error reason: InvalidSignature message: Invalid signature for this request NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: result: error reason: EndpointNotFound message: API entry point not found InternalError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: result: error reason: Internal Server Error message: Unexpected server error occurred. TooManyRequests: description: Too many requests - you have exceeded the rate limit content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: result: error reason: Too Many Requests message: Too Many Requests Unauthorized: description: Unauthorized - missing or invalid authentication content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' example: result: error reason: MissingApikeyHeader message: Must provide 'X-GEMINI-APIKEY' header schemas: Ticker: type: object properties: bid: type: string format: decimal description: The highest bid currently available example: '977.59' ask: type: string format: decimal description: The lowest ask currently available example: '977.35' last: type: string format: decimal description: The price of the last executed trade example: '977.65' volume: type: object description: Information about the 24 hour volume on the exchange. See properties below properties: timestamp: $ref: '#/components/schemas/TimestampType' example: 1483018200000 description: The end of the 24-hour period over which volume was measured. [timestamp (ms)](/rest/~schemas#timestamp-type) price_symbol: type: string format: decimal description: The volume denominated in the price currency example: '2210.505328803' quantity_symbol: type: string format: decimal description: The volume denominated in the quantity currency example: '2135477.463379586263' FundingAmountResponse: type: object properties: symbol: type: string description: The requested symbol. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols) fundingDateTime: type: string description: UTC date time in format `yyyy-MM-ddThh:mm:ss.SSSZ` format fundingTimestampMilliSecs: type: number format: long description: Current funding amount Epoc time. nextFundingTimestamp: type: number format: long description: Next funding amount Epoc time. amount: type: number format: decimal description: The dollar amount for a Long 1 position held in the symbol for funding period (1 hour) estimatedFundingAmount: type: number format: decimal description: The estimated dollar amount for a Long 1 position held in the symbol for next funding period (1 hour) OrderBookEntry: type: object properties: price: type: string format: decimal description: The price amount: type: string format: decimal description: The total quantity remaining at the price timestamp: type: string description: '**DO NOT USE** - this field is included for compatibility reasons only and is just populated with a dummy value.' CandleResponse: type: array items: $ref: '#/components/schemas/Candle' TimestampType: description: timestamp oneOf: - type: string description: '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 | ' example: '1495127793000' - type: integer format: int64 description: 'Gemini strongly recommends using milliseconds instead of seconds for timestamps. | Timestamp format | Example | Supported request type | |-----------------------------|---------------------------|------------------------| | whole number (seconds) | `1495127793` | `GET`, `POST` | | whole number (milliseconds) | `1495127793000` | `GET`, `POST` | ' example: 1495127793000 NetworkToken: type: object properties: token: type: string description: The requested token identifier. network: type: array items: type: string description: 'Array of supported blockchain networks for the token. Many tokens (especially stablecoins like USDC, USDT) are available on multiple networks. Supported networks include: `bitcoin`, `ethereum`, `solana`, `optimism`, `arbitrum`, `base`, `monad`, `avalanche`, `litecoin`, `bitcoincash`, `dogecoin`, `zcash`, `filecoin`, `tezos`, `polkadot`, `cosmos`, `xrpl`, `linea`, and more. ' example: - optimism - solana - base - arbitrum - monad - avalanche - ethereum Trade: type: object properties: timestamp: $ref: '#/components/schemas/TimestampType' example: 1547146811 description: The time that the trade was executed timestampms: $ref: '#/components/schemas/TimestampType' example: 1547146811357 description: The time that the trade was executed in milliseconds tid: type: integer format: int64 example: 5335307668 description: The trade ID number price: type: string format: decimal example: '3610.85' description: The price the trade was executed at amount: type: string format: decimal example: '0.27413495' description: The amount that was traded exchange: type: string example: gemini description: Will always be "gemini" type: type: string enum: - buy - sell example: buy description: '- `buy` means that an ask was removed from the book by an incoming buy order. - `sell` means that a bid was removed from the book by an incoming sell order. ' broken: type: boolean example: 'false' description: Whether the trade was broken or not. Broken trades will not be displayed by default; use the `include_breaks` to display them. OrderBook: type: object properties: bids: type: array description: The bid price levels currently on the book. These are offers to buy at a given price. items: $ref: '#/components/schemas/OrderBookEntry' asks: type: array description: The ask price levels currently on the book. These are offers to sell at a given price. items: $ref: '#/components/schemas/OrderBookEntry' PriceFeedResponse: type: array items: type: object properties: pair: type: string description: Trading pair symbol. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols) price: type: string description: Current price of the pair on the Gemini order book percentChange24h: type: string description: 24 hour change in price of the pair on the Gemini order book NetworkAssets: type: object properties: network: type: string description: The blockchain network identifier. example: ethereum assets: type: array items: type: string description: 'Alphabetically sorted array of enabled asset/token codes available on this network. Assets include both exchange-tradable and custody-supported tokens. ' example: - AAVE - BAT - DAI - ETH - LINK - MATIC - UNI - USDC - USDT - WBTC FxRate: type: object properties: fxPair: type: string description: The requested currency pair example: AUDUSD rate: type: number format: double description: The exchange rate example: 0.69 asOf: $ref: '#/components/schemas/TimestampType' description: The timestamp (in Epoch time format) that the requested fxrate has been retrieved for example: 1594651859000 provider: type: string description: The market data provider example: bcb benchmark: type: string description: The market for which the retrieved price applies to example: Spot SymbolDetails: type: object properties: symbol: type: string example: BTCUSD description: The requested symbol. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols) base_currency: type: string example: BTC description: CCY1 or the top currency. (i.e `BTC` in `BTCUSD`) quote_currency: type: string example: USD description: CCY2 or the quote currency. (i.e `USD` in `BTCUSD`) tick_size: type: number format: decimal example: 1.0e-08 description: The number of decimal places in the `base_currency`. (i.e `1e-8`) quote_increment: type: number format: decimal example: 0.01 description: The number of decimal places in the `quote_currency` (i.e `0.01`) min_order_size: type: string example: '0.00001' description: The minimum order size in `base_currency` units (i.e `0.00001`) status: type: string example: open description: Status of the current order book. Can be `open`, `closed`, `cancel_only`, `post_only`, `limit_only`. wrap_enabled: type: boolean example: false description: "When `True`, symbol can be wrapped using this endpoint: \n`POST https://api.gemini.com/v1/wrap/:symbol`\n" product_type: type: string example: spot description: Instrument type `spot` / `swap` -- where `swap` signifies `perpetual swap`. contract_type: type: string example: vanilla description: '`vanilla` / `linear` / `inverse` where `vanilla` is for spot while `linear` is for perpetual swap and `inverse` is a special case perpetual swap where the perpetual contract will be settled in base currency. ' contract_price_currency: type: string example: USD description: 'CCY2 or the quote currency for spot instrument (i.e. `USD` in `BTCUSD`) Or collateral currency of the contract in case of perpetual swap instrument. ' Candle: type: array items: type: number format: double minItems: 6 maxItems: 6 description: Array of [timestamp (ms), open, high, low, close, volume] example: - - 1559755800000 - 7781.6 - 7820.23 - 7776.56 - 7819.39 - 34.7624802159 - - 1559755800000 - 7781.6 - 7829.46 - 7776.56 - 7817.28 - 43.4228281059 TickerInfo: type: object properties: symbol: type: string description: The trading pair symbol example: BTCUSD open: type: string format: decimal description: Open price from 24 hours ago example: '9121.76' high: type: string format: decimal description: High price from 24 hours ago example: '9440.66' low: type: string format: decimal description: Low price from 24 hours ago example: '9106.51' close: type: string format: decimal description: Close price (most recent trade) example: '9347.66' changes: type: array description: Hourly prices descending for past 24 hours items: type: string format: decimal example: - '9365.1' - '9386.16' - '9373.41' - '9322.56' - '9268.89' - '9265.38' bid: type: string format: decimal description: Current best bid example: '9345.70' ask: type: string format: decimal description: Current best offer example: '9347.67' ErrorResponse: type: object properties: result: type: string description: Error reason: type: string description: A short description message: type: string description: Detailed error message parameters: contentType: name: Content-Type in: header required: false schema: type: string default: text/plain cacheControl: name: Cache-Control in: header required: false schema: type: string default: no-cache signatureAuth: name: X-GEMINI-SIGNATURE in: header required: true description: HEX-encoded HMAC-SHA384 of payload signed with API secret schema: type: string contentLength: name: Content-Length in: header required: false schema: type: string default: '0' payloadAuth: name: X-GEMINI-PAYLOAD in: header required: true description: Base64-encoded JSON payload schema: type: string timestampParam: name: timestamp in: path required: true schema: $ref: '#/components/schemas/TimestampType' description: 'The timestamp to pull the FX rate for. Gemini strongly recommends using milliseconds instead of seconds for timestamps. ' example: 1591084414622 apiKeyAuth: name: X-GEMINI-APIKEY in: header required: true description: Your API key schema: type: string symbolParam: name: symbol in: path required: true schema: type: string description: 'Trading pair symbol

`BTCUSD`, etc. See [**symbols and minimums**](/market-data/symbols-and-minimums#all-supported-symbols). ' securitySchemes: apiKeyAuth: type: apiKey in: header name: X-GEMINI-APIKEY description: Your API key payloadAuth: type: apiKey in: header name: X-GEMINI-PAYLOAD description: Base64-encoded JSON payload signatureAuth: type: apiKey in: header name: X-GEMINI-SIGNATURE description: HEX-encoded HMAC-SHA384 of payload signed with API secret