Orders

List Past Trades

<div class="p-4 text-sm section-icon section-info rounded-sm" role="alert"> <div class="flex"> <svg view-box="0 0 24 24" > <path fill-rule="evenodd" clip-rule="evenodd" d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM11 17V11H13V17H11ZM11 9V7H13V9H11Z" /> </svg> <div>Gemini recommends using our <a href="/websocket/order-events/about">WebSocket Order Events</a> API to be notified when a trade executes on your account instead of polling this endpoint.</div> </div> <p>Under the terms of the <a href="https://www.gemini.com/legal/api-agreement">Gemini API Agreement</a>, polling this endpoint may be subject to <a href="/rate-limit">rate limiting</a>.</p> <p>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.</p> </div>

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. When you receive the list of trades, it will be sorted by timestamp descending - so the first element in the list will have the highest timestamp value. For this example, say that value is X.
  3. Create a second POST request with a JSON payload including a timestamp key with value X+1 and a limit_trades key with value 500.
  4. Take the first element of the list returned with highest timestamp value Y and create a third POST request with a JSON payload including a timestamp key with value Y+1 and a limit_trades key with value 500.
  5. Continue creating POST requests and retrieving trades 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

ValueDescription
manualThe trade was reversed manually. This means that all fees, proceeds, and debits associated with the trade have been credited or debited to the account seperately. That means that this reported trade must be included for order for the account balance to be correct.
fullThe trade was fully broken. The reported trade should not be accounted for. It will be as though the transfer of fund associated with the trade had simply not happened.
post/v1/mytrades

Request

  • Base URL
    https://api.gemini.com
  • URL
    https://api.gemini.com/v1/mytrades
  • Auth
    API key in header X-GEMINI-APIKEY and API key in header X-GEMINI-SIGNATURE and API key in header X-GEMINI-PAYLOAD

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
Content-Lengthstring
Cache-Controlstring

Request body

requeststring required

The API endpoint path

accountstring

Required for Master API keys as described in 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.

symbolstring

The symbol to retrieve trades for

limit_tradesinteger

The maximum number of trades to return. Default is 50, max is 500.

Example request

{
  "request": "/v1/mytrades",
  "nonce": "1495127793000",
  "account": "primary",
  "symbol": "btcusd",
  "limit_trades": 50,
  "timestamp": "1495127793000"
}

Response

The past trades

pricestring
amountstring
type'Buy' | 'Sell'
aggressorboolean
fee_currencystring
fee_amountstring
tidinteger
order_idstring
client_order_idstring
exchangestring
is_auction_fillboolean
break'' | 'trade correct'

Example response

[
  {
    "timestamp": "1495127793000",
    "timestampms": "1495127793000",
    "type": "Buy",
    "aggressor": true,
    "fee_currency": "USD",
    "tid": 123456789,
    "exchange": "gemini"
  }
]

Changes

No recorded changes to this operation across all 1 revision of this API.