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

List Past Trades

TradingOrdersList Past Trades

List Past Trades

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

Get trade history for your account.

Note

Gemini recommends using our WebSocket Order Events API to be notified when a trade executes on your account instead of polling this endpoint.

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/mytrades
curl --request POST \
  --url https://api.gemini.com/v1/mytrades \
  --header 'Content-Type: application/json' \
  --header 'X-GEMINI-APIKEY: <string>' \
  --header 'X-GEMINI-PAYLOAD: <string>' \
  --header 'X-GEMINI-SIGNATURE: <string>' \
  --data '
{
  "request": "/v1/mytrades",
  "nonce": "<nonce>",
  "symbol": "btcusd"
}
'

Roles

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

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

How to retrieve your trade history

To retrieve your full trade history walking backwards:

  1. Initial request: POST to https://api.gemini.com/v1/mytrades with a JSON payload including a timestamp key with value 0 and a limit_trades key with value 500.
  2. The list is sorted by timestamp descending. Take the highest timestamp value X from the first element.
  3. Create a second request with timestamp set to X+1 and limit_trades set to 500.
  4. Repeat, using the highest timestamp from each response, until an empty list is returned.

Break Types

In the rare event that a trade has been reversed (broken), the trade that is broken will have this flag set. The field will contain one of these values:

  • manual — The trade was reversed manually. All fees, proceeds, and debits associated with the trade have been credited or debited to the account separately. This reported trade must be included for the account balance to be correct.
  • full — The trade was fully broken. The reported trade should not be accounted for. It will be as though the transfer of funds associated with the trade had simply not happened.

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/mytrades
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
symbolstring
The [symbol](/market-data/symbols-and-minimums) to retrieve trades forExample: btcusd
limit_tradesinteger
The maximum number of trades to return. Default is 50, max is 500.Example: 50
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: 1591084414000
Example request body
{
  "request": "/v1/mytrades",
  "nonce": "<nonce>",
  "symbol": "btcusd"
}

Responses

The past trades

pricestring
Example: 9100
amountstring
Example: 1.5
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: 1591084414
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: 1591084414622
typestring·enum
Enum values: BuySellExample: Buy
aggressorboolean
Example: true
fee_currencystring
Example: USD
fee_amountstring
Example: 13.65
tidinteger
Example: 123456789
order_idstring
Example: 123456789
client_order_idstring
exchangestring
Example: gemini
is_auction_fillboolean
Example: false
breakstring·enum
Enum values: trade correctExample:
Example Responses
[
  {
    "price": "3648.09",
    "amount": "0.0027343246",
    "timestamp": 1547232911,
    "timestampms": 1547232911021,
    "type": "Buy",
    "aggressor": true,
    "fee_currency": "USD",
    "fee_amount": "0.024937655575035",
    "tid": 107317526,
    "order_id": "107317524",
    "exchange": "gemini",
    "is_clearing_fill": false,
    "symbol": "BTCUSD"
  },
  {
    "price": "3633.00",
    "amount": "0.00423677",
    "timestamp": 1547220640,
    "timestampms": 1547220640195,
    "type": "Buy",
    "aggressor": false,
    "fee_currency": "USD",
    "fee_amount": "0.038480463525",
    "tid": 106921823,
    "order_id": "106817811",
    "exchange": "gemini",
    "is_clearing_fill": false,
    "symbol": "BTCUSD"
  }
]
PreviousList Past OrdersNextGet Trading Volume
Last modified on May 5, 2026