Bittrex API API Reference

Bittrex provides a simple and powerful API consisting of REST endpoints for transactional operations .

Access to and use of the API is governed by our Terms of Service. If you are a user of Bittrex.com, the applicable Terms of Service are available here. If you are a user of Bittrex International, the applicable Terms of Service are available here.

If you have any API questions, feedback, or recommendations please post a question via our Github page.

API Endpoint
https://api.bittrex.com/v3
Schemes: https
Version: v3

Pre-Release Warning

Warning: The v3-Beta or other pre-release API versions are not for production use.

The v3-Beta release will be subject to breaking changes, potentially without notice, until the final API is released. Pre-release APIs should only be used for testing and review.

The v3-Beta API will operate against production (live-site) data and accounts and we recommend using test accounts and small-value transactions to validate your implementation.

By using the v3-Beta API you understand and agree that issues may be encountered without warning, affecting your use of the website and API. Bittrex provides no warranties, either express or implied, as to the suitability or usability of pre-release APIs. Bittrex will not be liable for any loss, whether such loss is direct, indirect, special or consequential, suffered by any party as a result of their use of the v3-Beta API or other pre-release APIs.

Change Log

08/08/2019

  • Get all tickers: You can now use the v3 API to retrieve the bid/ask/last for all markets at once by getting v3/markets/ticker instead of querying each market individually.

  • Currency logos: When getting currency information from v3/currencies the response will now include a URL for an image containing the currency's logo.

06/26/2019

  • Ceiling Sell orders have been added to the V3 API Beta. This option allows you to instruct the system to sell enough of the base currency to increase your account balance of the quote currency by the specified amount.

To see all of the recent changes, please visit the change list.

Known Issues

  • Deposits from before 1/1/2019 are not returned by GET /deposits/closed.

  • The baseVolume under GET /markets/summaries and GET /markets/{marketSymbol}/candles is actually the quote volume.

Getting Started

Keep the following in mind when developing against the Bittrex API:

  • Enable 2FA on your account. API Keys cannot be generated unless 2FA is enabled and extended verification is done on the account.
  • All REST requests must be sent to https://api.bittrex.com/v3 using the application/json content type. Non-HTTPS requests will be redirected to HTTPS, possibly causing functional or performance issues with your application.

Best Practices

Call Limits

The Bittrex API employs call limits on all endpoints to ensure the efficiency and availability of the platform for all customers. In general, API users are permitted to make a maximum of 60 API calls per minute. Calls after the limit will fail, with the limit resetting at the start of the next minute.

Note: Corporate and high-volume accounts may contact customer support for additional information to ensure that they may continue operating at an optimal level.

Pagination

Overview

Several Bittrex API resources support bulk fetches via 'list' API methods. For example, you can list deposits, list closed orders, and list withdrawals. These list API methods share a common structure, using at least these three parameters: pageSize, nextPageToken and previousPageToken. These parameters, if necessary are specified as query parameters on the HTTP request.

Arguments:

  • pageSize(optional): A limit on the number of objects to be returned between 1 and 200, defaults to 100

  • nextPageToken(optional): It is a cursor for for using pagination and acts is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects ending with objFoo, your subsequent call can include nextPageToken=objFoo in order to fetch the next page of the list. Typically used for paginating in the forward direction.

  • previousPageToken(optional): It is a cursor for for using pagination and acts is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects starting with objBar, your subsequent call can include previousPageToken=objBar in order to fetch the previous page of the list. Typically used for paginating in the reverse direction.

Examples:

List withdrawals, in reverse chronological order, up to maximum of 20 withdrawals, starting at the most recent withdrawal created:

https://api.bittrex.com/v3/withdrawals?pageSize=20

List withdrawals, in reverse chronological order, up to maximum of 10 withdrawals, starting after the withdrawal with ID of 940af3c3-665d-4432-a12e-cdf8fd99ab3b

https://api.bittrex.com/v3/withdrawals?pageSize=10&nextPageToken=940af3c3-665d-4432-a12e-cdf8fd99ab3b

List withdrawals, in reverse chronological order, up to a maximum of 10 withdrawals, ending before the withdrawal with ID of 0d990dd2-4103-4d57-8e80-047e886537db:

https://api.bittrex.com/v3/withdrawals?pageSize=10&previousPageToken=0d990dd2-4103-4d57-8e80-047e886537db

Placing Orders

Order Types:

  • Market Order :An order to buy or sell an asset immediately at the best available price. The price at which a market order will execute often deviates from the last-traded price or “real time” quote.

  • Limit Order :An order to trade a specified quantity of an asset at a specified rate or better.A buy order will only be filled at or below the limit price and a sell order will only be filled at or above the limit price.

  • Ceiling Order : It is a type of market order which executes orders to buy/sell a specified total value of the order at the best, currently available price (e.g. buy $100 USD of BTC at the current market BTC price)

  • Good-Til-Cancelled Order : A Good-Til-Cancelled (GTC) order is an order to buy or sell a token that lasts until the order is completed, expired, or cancelled.The maximum lifetime of any order is 28 days. Any order older then 28 days will be automatically canceled by the system and all reserved funds will be returned to your account.

  • Immediate-Or-Cancel Order : An Immediate-Or-Cancel (IOC) order is an order to buy or sell a token that must be executed immediately. Any portion of an IOC order that cannot be filled immediately will be cancelled.

  • Fill-or-Kill : This option allows orders to be placed which will be filled immediately and completely, or not at all.

  • Post Only : This option allows market makers to ensure that their orders are making it to the order book instead of matching with a pre-existing order. Note: If the order is not a maker order, you will return an error and the order will be cancelled

Order types and time in force :

The following table shows which time in force options apply to which order types.

timeInForce LIMIT MARKET CEILING_LIMIT CEILING_MARKET
GOOD_TIL_CANCELLED BUY OR SELL NOT ALLOWED NOT ALLOWED NOT ALLOWED
IMMEDIATE_OR_CANCEL BUY OR SELL BUY OR SELL BUY OR SELL BUY OR SELL
FILL_OR_KILL BUY OR SELL BUY OR SELL BUY OR SELL BUY OR SELL
POST_ONLY_GOOD_TIL_CANCELLED BUY OR SELL NOT ALLOWED NOT ALLOWED NOT ALLOWED

clientOrderId:

It is an optional UUID which is generated by the user to to keep a track of the order. If the outcome of placing an order is not known (for example due to a client-side crash that occurred while placing the order), the same order can be safely placed again using the same UUID as the clientOrderId. If the order was received and processed the first time, the API will return an error that includes the existing order's id instead of creating a second order. This protection is in place for 24 hours after an order is placed. Although clientOrderIds which are more than 24 hours old are no longer checked against new orders, they remain associated with their orders as metadata and may be retrieved by clients.

Sub Accounts

(NOTE: This functionality is limited to partners and unavailable to general traders.)

The subaccount feature will enable partners to create a sub accounts for each of their users allowing the users to create sub account deposit addresses, manage deposit and withdrawal transactions as well as place orders from for the sub and access historical data.

Getting Started:

Key points to remember before working with this feature :

  • Enable 2FA on your account as the API Keys cannot be generated unless 2FA is enabled and extended verification is done on the account.

  • When enabled, authentication mechanism will need to be modified which is shown under Api-subaccount-ID under Authentication with with examples.

Error Codes

Overview:

If an error occurs during the processing of an API request, the Bittrex API will return an error to the caller. The general flow of information to check is:

  • status code of the response.

  • error code and other information in the response body (JSON)

HTTP Status Codes

Status Code Description
400 - Bad Request The request was malformed, often due to a missing or invalid parameter. See the error code and response data for more details.
401 - Unauthorized The request failed to authenticate (example: a valid api key was not included in your request header)
403 - Forbidden The provided api key is not authorized to perform the requested operation (example: attempting to trade with an api key not authorized to make trades)
404 - Not Found The requested resource does not exist.
409 - Conflict The request parameters were valid but the request failed due to an operational error. (example: INSUFFICIENT_FUNDS)
429 - Too Many Requests Too many requests hit the API too quickly. Please make sure to implement exponential backoff with your requests.
501 - Not Implemented The service requested has not yet been implemented.
503 - Service Unavailable The request parameters were valid but the request failed because the resource is temporarily unavailable (example: CURRENCY_OFFLINE)

Authentication

Overview

In order to properly sign an authenticated request for the Bittrex v3 API, the following headers must be included:

  • Api-Key

  • Api-Timestamp

  • Api-Content-Hash

  • Api-Signature

  • Api-Subaccount-Id (optional)

The following sections are instructions for properly populating these headers.


Api-Key

Populate this header with your API key.

Example Value:

4894xxxxxxxx407e827d05xxxxxxxxxx


Api-Timestamp

Populate this header with the current time as a UNIX timestamp, in epoch-millisecond format.

Sample JS Code Snippet:

var timestamp = new Date().getTime();

Example Value:

1542323450016


Api-Content-Hash

Populate this header with a SHA512 hash of the request contents, Hex-encoded. If there are no request contents, populate this header with a SHA512 hash of an empty string.

Sample JS Code Snippet:

var contentHash = CryptoJS.SHA512(content).toString(CryptoJS.enc.Hex);

Example Value:

cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

Api-Subaccount-Id (Only for subaccount feature)

(NOTE: This functionality is limited to partners and unavailable to general traders.)

If you wish to make a request on behalf of a subaccount, you will need to:

  1. Authenticate using all 4 of the headers above referring to your master account.
  2. Populate the Api-Subaccount-Id header with the UUID of the subaccount you wish to impersonate for this request. The specified subaccount must be a subaccount of the master account used to authenticate the request.
  3. Include the Api-Subaccount-Id header at the end of the pre-signed signature, as indicated in the next section.

Example Value:

x111x11x-8968-48ac-b956-x1x11x111111


Api-Signature

Create a pre-sign string formed from the following items and concatenating them together:

  1. Contents of your Api-Timestamp header
  2. The full URI you are using to make the request (including query string)
  3. The HTTP method of the request, in all caps (GET, POST, DELETE, etc.)
  4. Contents of your Api-Content-Hash header
  5. Content of your Api-Subaccount-Id header (or an empty string if not present)

Once you have created this pre-sign string, sign it via HmacSHA512, using your API secret as the signing secret. Hex-encode the result of this operation and populate the Api-Signature header with it.

Sample JS Code Snippet:

var uri = 'https://api.bittrex.com/v3/balances';
var preSign = [timestamp, uri, method, contentHash, subaccountId].join('');
var signature = CryptoJS.HmacSHA512(preSign, apiSecret).toString(CryptoJS.enc.Hex);

Example Pre-Signed Value (no subaccount)

1542323450016https://api.bittrex.com/v3/balancesGETcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e

Example Pre-Signed Value (with subaccount)

1542323450016https://api.bittrex.com/v3/balancesGETcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3ex111x11x-8968-48ac-b956-x1x11x111111

Example Post-Signed Value:

939047623f0efbe10bfbb32f18e5d8885b2a91be3c3cea82adf0dd2d20892b20bcb6a10a91fec3afcedcc009f2b2a86c5366974cfadcf671fe0490582568f51f

Account

GET /account

Retrieve information for the account associated with the request. For now, it only echoes the subaccount if one was specified in the header, which can be used to verify that one is operating on the intended account. More fields will be added later.

Request Url Example
https://api.bittrex.com/v3/account
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "subaccountId": "string (uuid)"
}

Addresses

GET /addresses

List deposit addresses that have been requested or provisioned.

Request Url Example
https://api.bittrex.com/v3/addresses
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "status": "string",
    "currencySymbol": "string",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string"
  }
]

POST /addresses

Request provisioning of a deposit address for a currency for which no address has been requested or provisioned.

information including ID of the currency to provision a deposit address for

Request Url Example
https://api.bittrex.com/v3/addresses
Request Content-Types: application/json
Request Body Example
{
  "currencySymbol": "string"
}
201 Created

Created

Response Content-Types: application/json
Response Example (201 Created)
{
  "status": "string",
  "currencySymbol": "string",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string"
}

GET /addresses/{currencySymbol}

Retrieve the status of the deposit address for a particular currency for which one has been requested or provisioned.

currencySymbol: string
in path

symbol of the currency to retrieve the deposit address for

Request Url Example
https://api.bittrex.com/v3/addresses/{currencySymbol}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "status": "string",
  "currencySymbol": "string",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string"
}

Balances

GET /balances

List account balances across available currencies. Returns a Balance entry for each currency for which there is either a balance or an address.

Request Url Example
https://api.bittrex.com/v3/balances
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "currencySymbol": "string",
    "total": "number (double)",
    "available": "number (double)"
  }
]

GET /balances/{currencySymbol}

Retrieve account balance for a specific currency. Request will always succeed when the currency exists, regardless of whether there is a balance or address.

currencySymbol: string
in path

unique symbol of the currency to retrieve the account balance for

Request Url Example
https://api.bittrex.com/v3/balances/{currencySymbol}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "currencySymbol": "string",
  "total": "number (double)",
  "available": "number (double)"
}

Currencies

GET /currencies

List currencies.

Request Url Example
https://api.bittrex.com/v3/currencies
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "symbol": "string",
    "name": "string",
    "coinType": "string",
    "status": "string",
    "minConfirmations": "integer (int32)",
    "notice": "string",
    "txFee": "number (double)",
    "logoUrl": "string"
  }
]

GET /currencies/{symbol}

Retrieve info on a specified currency.

symbol: string
in path

symbol of the currency to retrieve

Request Url Example
https://api.bittrex.com/v3/currencies/{symbol}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "symbol": "string",
  "name": "string",
  "coinType": "string",
  "status": "string",
  "minConfirmations": "integer (int32)",
  "notice": "string",
  "txFee": "number (double)",
  "logoUrl": "string"
}

Deposits

GET /deposits/open

List open deposits. Results are sorted in inverse order of UpdatedAt, and are limited to the first 1000.

status: string PENDING
in query

filter by an open deposit status (optional)

currencySymbol: string
in query

filter by currency (optional)

Request Url Example
https://api.bittrex.com/v3/deposits/open
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txId": "string",
    "confirmations": "integer (int32)",
    "updatedAt": "string (date-time)",
    "completedAt": "string (date-time)",
    "status": "string"
  }
]

GET /deposits/closed

List closed deposits. StartDate and EndDate filters apply to the CompletedAt field. Pagination and the sort order of the results are in inverse order of the CompletedAt field.

status: string COMPLETED, ORPHANED, INVALIDATED
in query

filter by deposit status (optional)

currencySymbol: string
in query

filter by currency (optional)

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

startDate: string (date-time)
in query

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)
in query

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Request Url Example
https://api.bittrex.com/v3/deposits/closed
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txId": "string",
    "confirmations": "integer (int32)",
    "updatedAt": "string (date-time)",
    "completedAt": "string (date-time)",
    "status": "string"
  }
]

GET /deposits/ByTxId/{txId}

Retrieves all deposits for this account with the given TxId

txId: string
in path

the transaction id to lookup

Request Url Example
https://api.bittrex.com/v3/deposits/ByTxId/{txId}
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txId": "string",
    "confirmations": "integer (int32)",
    "updatedAt": "string (date-time)",
    "completedAt": "string (date-time)",
    "status": "string"
  }
]

GET /deposits/{depositId}

Retrieve information for a specific deposit.

depositId: string (uuid)
in path

(uuid-formatted string) - ID of the deposit to retrieve

Request Url Example
https://api.bittrex.com/v3/deposits/{depositId}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string",
  "txId": "string",
  "confirmations": "integer (int32)",
  "updatedAt": "string (date-time)",
  "completedAt": "string (date-time)",
  "status": "string"
}

Markets

GET /markets

List markets.

Request Url Example
https://api.bittrex.com/v3/markets
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "symbol": "string",
    "baseCurrencySymbol": "string",
    "quoteCurrencySymbol": "string",
    "minTradeSize": "number (double)",
    "precision": "integer (int32)",
    "status": "string",
    "createdAt": "string (date-time)",
    "notice": "string"
  }
]

GET /markets/summaries

List summaries of the last 24 hours of activity for all markets.

Request Url Example
https://api.bittrex.com/v3/markets/summaries
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "symbol": "string",
    "high": "number (double)",
    "low": "number (double)",
    "volume": "number (double)",
    "baseVolume": "number (double)",
    "percentChange": "number (double)",
    "updatedAt": "string (date-time)"
  }
]

GET /markets/tickers

List tickers for all markets

Request Url Example
https://api.bittrex.com/v3/markets/tickers
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "symbol": "string",
    "lastTradeRate": "number (double)",
    "bidRate": "number (double)",
    "askRate": "number (double)"
  }
]

GET /markets/{marketSymbol}

Retrieve information for a specific market.

marketSymbol: string
in path

symbol of market to retrieve

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "symbol": "string",
  "baseCurrencySymbol": "string",
  "quoteCurrencySymbol": "string",
  "minTradeSize": "number (double)",
  "precision": "integer (int32)",
  "status": "string",
  "createdAt": "string (date-time)",
  "notice": "string"
}

GET /markets/{marketSymbol}/summary

Retrieve summary of the last 24 hours of activity for a specific market.

marketSymbol: string
in path

symbol of market to retrieve summary for

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}/summary
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "symbol": "string",
  "high": "number (double)",
  "low": "number (double)",
  "volume": "number (double)",
  "baseVolume": "number (double)",
  "percentChange": "number (double)",
  "updatedAt": "string (date-time)"
}

GET /markets/{marketSymbol}/orderbook

Retrieve the order book for a specific market.

marketSymbol: string
in path

symbol of market to retrieve order book for

depth: integer (int32)
in query

maximum depth of order book to return (optional, allowed values are [1, 25, 500], default is 25)

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}/orderbook
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "bid": [
    {
      "quantity": "number (double)",
      "rate": "number (double)"
    }
  ],
  "ask": [
    {
      "quantity": "number (double)",
      "rate": "number (double)"
    }
  ]
}

GET /markets/{marketSymbol}/trades

Retrieve the recent trades for a specific market.

marketSymbol: string
in path

symbol of market to retrieve recent trades for

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}/trades
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "executedAt": "string (date-time)",
    "quantity": "number (double)",
    "rate": "number (double)",
    "takerSide": "string"
  }
]

GET /markets/{marketSymbol}/ticker

Retrieve the ticker for a specific market.

marketSymbol: string
in path

symbol of market to retrieve ticker for

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}/ticker
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "symbol": "string",
  "lastTradeRate": "number (double)",
  "bidRate": "number (double)",
  "askRate": "number (double)"
}

GET /markets/{marketSymbol}/candles

Retrieve recent candles for a specific market. The maximum age of the returned candles depends on the interval as follows: (MINUTE_1: 1 day, MINUTE_5: 1 day, HOUR_1: 31 days, DAY_1: 366 days). Candles for intervals without any trading activity are omitted.

marketSymbol: string
in path

symbol of market to retrieve candles for

candleInterval: string MINUTE_1, MINUTE_5, HOUR_1, DAY_1
in query

desired time interval between candles

Request Url Example
https://api.bittrex.com/v3/markets/{marketSymbol}/candles
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "startsAt": "string (date-time)",
    "open": "number (double)",
    "high": "number (double)",
    "low": "number (double)",
    "close": "number (double)",
    "volume": "number (double)",
    "baseVolume": "number (double)"
  }
]

Orders

GET /orders/closed

List closed orders.
StartDate and EndDate filters apply to the ClosedAt field. Pagination and the sort order of the results are in inverse order of the ClosedAt field.

marketSymbol: string
in query

filter by market (optional)

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

startDate: string (date-time)
in query

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)
in query

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Request Url Example
https://api.bittrex.com/v3/orders/closed
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "marketSymbol": "string",
    "direction": "string",
    "type": "string",
    "quantity": "number (double)",
    "limit": "number (double)",
    "ceiling": "number (double)",
    "timeInForce": "string",
    "expiresAt": "string (date-time)",
    "clientOrderId": "string (uuid)",
    "fillQuantity": "number (double)",
    "commission": "number (double)",
    "proceeds": "number (double)",
    "status": "string",
    "createdAt": "string (date-time)",
    "updatedAt": "string (date-time)",
    "closedAt": "string (date-time)"
  }
]

GET /orders/open

List open orders.

marketSymbol: string
in query

filter by market (optional)

Request Url Example
https://api.bittrex.com/v3/orders/open
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "marketSymbol": "string",
    "direction": "string",
    "type": "string",
    "quantity": "number (double)",
    "limit": "number (double)",
    "ceiling": "number (double)",
    "timeInForce": "string",
    "expiresAt": "string (date-time)",
    "clientOrderId": "string (uuid)",
    "fillQuantity": "number (double)",
    "commission": "number (double)",
    "proceeds": "number (double)",
    "status": "string",
    "createdAt": "string (date-time)",
    "updatedAt": "string (date-time)",
    "closedAt": "string (date-time)"
  }
]

GET /orders/{orderId}

Retrieve information on a specific order.

orderId: string (uuid)
in path

(uuid-formatted string) - ID of order to retrieve

Request Url Example
https://api.bittrex.com/v3/orders/{orderId}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "marketSymbol": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "expiresAt": "string (date-time)",
  "clientOrderId": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "status": "string",
  "createdAt": "string (date-time)",
  "updatedAt": "string (date-time)",
  "closedAt": "string (date-time)"
}

DELETE /orders/{orderId}

Cancel an order.

orderId: string (uuid)
in path

(uuid-formatted string) - ID of order to cancel

Request Url Example
https://api.bittrex.com/v3/orders/{orderId}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "marketSymbol": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "expiresAt": "string (date-time)",
  "clientOrderId": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "status": "string",
  "createdAt": "string (date-time)",
  "updatedAt": "string (date-time)",
  "closedAt": "string (date-time)"
}

POST /orders

Create a new order.

information specifying the order to create

Request Url Example
https://api.bittrex.com/v3/orders
Request Content-Types: application/json
Request Body Example For Limit Order
{
                  "marketSymbol": "string",
                  "direction": "string",
                  "type": "LIMIT",
                  "quantity": "number (double)",
                  "limit": "number (double)",
                  "timeInForce": "GOOD_TIL_CANCELLED||
IMMEDIATE_OR_CANCEL||FILL_OR_KILL||POST_ONLY_GOOD_TIL_CANCELLED"
, "clientOrderId": "string (uuid)" }
Request Body Example For Market Order
{
                  "marketSymbol": "string",
                  "direction": "string",
                  "type": "MARKET",
                  "quantity": "number (double)",
                  "timeInForce": "IMMEDIATE_OR_CANCEL||FILL_OR_KILL",
                  "clientOrderId": "string (uuid)"
                }
                
Request Body Example For Ceiling limit Order
{
                  "marketSymbol": "string",
                  "direction": "string",
                  "type": "CEILING_LIMIT",
                  "limit": "number (double)",
                  "ceiling": "number (double)",
                  "timeInForce": "IMMEDIATE_OR_CANCEL||FILL_OR_KILL",
                  "clientOrderId": "string (uuid)"
                }
                
Request Body Example For Ceiling Market Order
{
                  "marketSymbol": "string",
                  "direction": "string",
                  "type": "CEILING_MARKET",
                  "ceiling": "number (double)",
                  "timeInForce": "IMMEDIATE_OR_CANCEL||FILL_OR_KILL",
                  "clientOrderId": "string (uuid)"
                }
                
201 Created

Created

Response Content-Types: application/json
Response Example (201 Created)
{
  "id": "string (uuid)",
  "marketSymbol": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "expiresAt": "string (date-time)",
  "clientOrderId": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "status": "string",
  "createdAt": "string (date-time)",
  "updatedAt": "string (date-time)",
  "closedAt": "string (date-time)"
}

Ping

GET /ping

Pings the service

Request Url Example
https://api.bittrex.com/v3/ping
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "serverTime": "integer (int64)"
}

Subaccounts

GET /subaccounts

List subaccounts. (NOTE: This API is limited to partners and not available for traders.) Pagination and the sort order of the results are in inverse order of the CreatedAt field.

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

Request Url Example
https://api.bittrex.com/v3/subaccounts
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "createdAt": "string (date-time)"
  }
]

POST /subaccounts

Create a new subaccount. (NOTE: This API is limited to partners and not available for traders.)

information specifying the subaccount to create

Request Url Example
https://api.bittrex.com/v3/subaccounts
Request Content-Types: application/json
Request Body Example
{}
201 Created

Created

Response Content-Types: application/json
Response Example (201 Created)
{
  "id": "string (uuid)",
  "createdAt": "string (date-time)"
}

GET /subaccounts/{subaccountId}

Retrieve details for a specified subaccount. (NOTE: This API is limited to partners and not available for traders.)

subaccountId: string (uuid)
in path

(uuid-formatted string) - ID of the subaccount to retrieve details for

Request Url Example
https://api.bittrex.com/v3/subaccounts/{subaccountId}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "createdAt": "string (date-time)"
}

Transfers

GET /transfers/sent

List sent transfers.(NOTE: This API is limited to partners and not available for traders.) Pagination and the sort order of the results are in inverse order of the Executed field.

toSubaccountId: string (uuid)
in query

(uuid-formatted string) - filter transfers to a sub account id (optional)

toMasterAccount: boolean
in query

filter transfers to master account (optional)

currencySymbol: string
in query

filter by currency (optional)

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

startDate: string (date-time)
in query

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)
in query

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Request Url Example
https://api.bittrex.com/v3/transfers/sent
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "toSubaccountId": "string (uuid)",
    "toMasterAccount": "boolean",
    "id": "string (uuid)",
    "requestId": "string (uuid)",
    "currencySymbol": "string",
    "amount": "number (double)",
    "executedAt": "string (date-time)"
  }
]

GET /transfers/received

List received transfers.(NOTE: This API is limited to partners and not available for traders.) Pagination and the sort order of the results are in inverse order of the Executed field.

fromSubaccountId: string (uuid)
in query

(uuid-formatted string) - filter transfers from a sub account id (optional)

fromMasterAccount: boolean
in query

filter transfers from master account (optional)

currencySymbol: string
in query

filter by currency (optional)

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

startDate: string (date-time)
in query

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)
in query

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Request Url Example
https://api.bittrex.com/v3/transfers/received
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "fromSubaccountId": "string (uuid)",
    "fromMasterAccount": "boolean",
    "id": "string (uuid)",
    "requestId": "string (uuid)",
    "currencySymbol": "string",
    "amount": "number (double)",
    "executedAt": "string (date-time)"
  }
]

GET /transfers/{transferId}

Retrieve information on the specified transfer.(NOTE: This API is limited to partners and not available for traders.)

transferId: string (uuid)
in path

(uuid-formatted string) - ID of the transfer to retrieve

Request Url Example
https://api.bittrex.com/v3/transfers/{transferId}
Response Content-Types: application/json
Response Example (200 OK)
{
  "fromSubaccountId": "string (uuid)",
  "fromMasterAccount": "boolean",
  "id": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "executedAt": "string (date-time)"
}

POST /transfers

Executes a new transfer.(NOTE: This API is limited to partners and not available for traders.)

information specifying the transfer to execute

Request Url Example
https://api.bittrex.com/v3/transfers
Request Content-Types: application/json
Request Body Example
{
  "toSubaccountId": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "toMasterAccount": "boolean"
}
201 Created

Created

Response Content-Types: application/json
Response Example (201 Created)
{
  "toSubaccountId": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "toMasterAccount": "boolean"
}

Withdrawals

GET /withdrawals/open

List open withdrawals. Results are sorted in inverse order of the CreatedAt field, and are limited to the first 1000.

status: string REQUESTED, AUTHORIZED, PENDING, ERROR_INVALID_ADDRESS
in query

filter by an open withdrawal status (optional)

currencySymbol: string
in query

filter by currency (optional)

Request Url Example
https://api.bittrex.com/v3/withdrawals/open
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txCost": "number (double)",
    "txId": "string",
    "status": "string",
    "createdAt": "string (date-time)",
    "completedAt": "string (date-time)"
  }
]

GET /withdrawals/closed

List closed withdrawals. StartDate and EndDate filters apply to the CompletedAt field. Pagination and the sort order of the results are in inverse order of the CompletedAt field.

status: string COMPLETED, CANCELLED
in query

filter by withdrawal status (optional)

currencySymbol: string
in query

filter by currency (optional)

nextPageToken: string
in query

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string
in query

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)
in query

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

startDate: string (date-time)
in query

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)
in query

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Request Url Example
https://api.bittrex.com/v3/withdrawals/closed
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txCost": "number (double)",
    "txId": "string",
    "status": "string",
    "createdAt": "string (date-time)",
    "completedAt": "string (date-time)"
  }
]

GET /withdrawals/ByTxId/{txId}

Retrieves all withdrawals for this account with the given TxId

txId: string
in path

the transaction id to lookup

Request Url Example
https://api.bittrex.com/v3/withdrawals/ByTxId/{txId}
200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "string (uuid)",
    "currencySymbol": "string",
    "quantity": "number (double)",
    "cryptoAddress": "string",
    "cryptoAddressTag": "string",
    "txCost": "number (double)",
    "txId": "string",
    "status": "string",
    "createdAt": "string (date-time)",
    "completedAt": "string (date-time)"
  }
]

GET /withdrawals/{withdrawalId}

Retrieve information on a specified withdrawal.

withdrawalId: string (uuid)
in path

(uuid-formatted string) - ID of withdrawal to retrieve

Request Url Example
https://api.bittrex.com/v3/withdrawals/{withdrawalId}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string",
  "txCost": "number (double)",
  "txId": "string",
  "status": "string",
  "createdAt": "string (date-time)",
  "completedAt": "string (date-time)"
}

DELETE /withdrawals/{withdrawalId}

Cancel a withdrawal. (Withdrawals can only be cancelled if status is REQUESTED, AUTHORIZED, or ERROR_INVALID_ADDRESS.)

withdrawalId: string (uuid)
in path

(uuid-formatted string) - ID of withdrawal to cancel

Request Url Example
https://api.bittrex.com/v3/withdrawals/{withdrawalId}
204 No Content

NoContent

Response Content-Types: application/json

POST /withdrawals

Create a new withdrawal.

information specifying the withdrawal to create

Request Url Example
https://api.bittrex.com/v3/withdrawals
Request Content-Types: application/json
Request Body Example
{
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string"
}
201 Created

Created

Response Content-Types: application/json
Response Example (201 Created)
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string",
  "txCost": "number (double)",
  "txId": "string",
  "status": "string",
  "createdAt": "string (date-time)",
  "completedAt": "string (date-time)"
}

Schema Definitions

Account

subaccountId: string (uuid)

the subaccount ID associated with this request if one was specified in the header (optional)

Example
{
  "subaccountId": "string (uuid)"
}

Address

status: string REQUESTED, PROVISIONED

the status of this deposit address

currencySymbol: string

the unique ID of the currency this deposit address is for

cryptoAddress: string

the cryptographic deposit address (optional, only set if Status is PROVISIONED)

cryptoAddressTag: string

the cryptographic deposit address tag (optional, only set if Status is PROVISIONED) NOTE: This only applies for currencies whose coinType requires it.

Example
{
  "status": "string",
  "currencySymbol": "string",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string"
}

NewAddress

currencySymbol: string

the currency ID to provision a new address for

Example
{
  "currencySymbol": "string"
}

Balance

currencySymbol: string

unique ID for the currency this balance is associated with

total: number (double)

total amount

available: number (double)

available amount

Example
{
  "currencySymbol": "string",
  "total": "number (double)",
  "available": "number (double)"
}

Currency

symbol: string

unique symbol for this currency

name: string

long name of this currency

coinType: string

coin type of this currency

status: string ONLINE, OFFLINE

currency status (online, offline, etc.)

minConfirmations: integer (int32)

minimum number of confirmations

notice: string

news or alerts regarding this currency

txFee: number (double)

transaction fee for this currency

logoUrl: string

url to the logo image for this currency, if available

Example
{
  "symbol": "string",
  "name": "string",
  "coinType": "string",
  "status": "string",
  "minConfirmations": "integer (int32)",
  "notice": "string",
  "txFee": "number (double)",
  "logoUrl": "string"
}

Deposit

id: string (uuid)

unique ID for this deposit, assigned by the service

currencySymbol: string

unique symbol of the currency being deposited to

quantity: number (double)

quantity to deposit

cryptoAddress: string

crypto address for this deposit

cryptoAddressTag: string

crypto address tag for this deposit (optional, depends on the coin type of currency being deposited)

txId: string

TxID for the deposit (optional)

confirmations: integer (int32)

current count of confirmations

updatedAt: string (date-time)

time stamp when this deposit was last updated

completedAt: string (date-time)

time stamp when this deposit was completed (optional, only set when status is COMPLETED)

status: string PENDING, COMPLETED, ORPHANED, INVALIDATED

current status of this deposit

Example
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string",
  "txId": "string",
  "confirmations": "integer (int32)",
  "updatedAt": "string (date-time)",
  "completedAt": "string (date-time)",
  "status": "string"
}

PaginationParameters

nextPageToken: string

The unique identifier of the item that the resulting query result should start after, in the sort order of the given endpoint. Used for traversing a paginated set in the forward direction. (Optional. May only be specified if PreviousPageToken is not specified.)

previousPageToken: string

The unique identifier of the item that the resulting query result should end before, in the sort order of the given endpoint. Used for traversing a paginated set in the reverse direction. (Optional. May only be specified if NextPageToken is not specified.)

pageSize: integer (int32)

maximum number of items to retrieve -- default 100, minimum 1, maximum 200 (optional)

Example
{
  "nextPageToken": "string",
  "previousPageToken": "string",
  "pageSize": "integer (int32)"
}

DateFilter

startDate: string (date-time)

(optional) Filters out results before this timestamp. In ISO 8601 format (e.g., "2019-01-02T16:23:45Z"). Precision beyond one second is not supported. Use pagination parameters for more precise filtering.

endDate: string (date-time)

(optional) Filters out result after this timestamp. Uses the same format as StartDate. Either, both, or neither of StartDate and EndDate can be set. The only constraint on the pair is that, if both are set, then EndDate cannot be before StartDate.

Example
{
  "startDate": "string (date-time)",
  "endDate": "string (date-time)"
}

Market

symbol: string

unique symbol for this market

baseCurrencySymbol: string

unique symbol for base currency

quoteCurrencySymbol: string

unique symbol for quote currency

minTradeSize: number (double)

minimum trade size

precision: integer (int32)

maximum allowed precision for the limit price on an order

status: string ONLINE, OFFLINE

true if this market is currently active

createdAt: string (date-time)

timestamp in UTC when this market was created

notice: string

notice or alert info

Example
{
  "symbol": "string",
  "baseCurrencySymbol": "string",
  "quoteCurrencySymbol": "string",
  "minTradeSize": "number (double)",
  "precision": "integer (int32)",
  "status": "string",
  "createdAt": "string (date-time)",
  "notice": "string"
}

MarketSummary

symbol: string

unique symbol for this market

high: number (double)

highest price of a trade that occurred within the last 24 hours (or zero if there were no trades)

low: number (double)

lowest price of a trade that occurred within the last 24 hours (or zero if there were no trades)

volume: number (double)

volume within the last 24 hours

baseVolume: number (double)

the quote volume within the last 24 hours

percentChange: number (double)

percentage change of the exchange rate over the last 24 hours (positive or negative)

updatedAt: string (date-time)

timestamp in UTC when market summary was last updated

Example
{
  "symbol": "string",
  "high": "number (double)",
  "low": "number (double)",
  "volume": "number (double)",
  "baseVolume": "number (double)",
  "percentChange": "number (double)",
  "updatedAt": "string (date-time)"
}

OrderBook

bid: OrderBookEntry

buy entries

OrderBookEntry
ask: OrderBookEntry

sell entries

OrderBookEntry
Example
{
  "bid": [
    {
      "quantity": "number (double)",
      "rate": "number (double)"
    }
  ],
  "ask": [
    {
      "quantity": "number (double)",
      "rate": "number (double)"
    }
  ]
}

OrderBookEntry

quantity: number (double)

quantity

rate: number (double)

rate

Example
{
  "quantity": "number (double)",
  "rate": "number (double)"
}

Trade

id: string (uuid)

unique ID of this trade, assigned by the service (always present)

executedAt: string (date-time)

timestamp in UTC when order was filled

quantity: number (double)

quantity

rate: number (double)

rate

takerSide: string BUY, SELL

taker side (specifies whether the taker was the buy or sellside)

Example
{
  "id": "string (uuid)",
  "executedAt": "string (date-time)",
  "quantity": "number (double)",
  "rate": "number (double)",
  "takerSide": "string"
}

Ticker

symbol: string

unique symbol for this market

lastTradeRate: number (double)

price of the last trade (or zero if there were no trades)

bidRate: number (double)

rate of the current best bid (or zero if there are no bids)

askRate: number (double)

rate of the current best ask (or zero if there are no asks)

Example
{
  "symbol": "string",
  "lastTradeRate": "number (double)",
  "bidRate": "number (double)",
  "askRate": "number (double)"
}

Candle

startsAt: string (date-time)

time stamp in UTC for when this candle's time interval starts

open: number (double)

open

high: number (double)

high

low: number (double)

low

close: number (double)

close

volume: number (double)

volume

baseVolume: number (double)

quote volume

Example
{
  "startsAt": "string (date-time)",
  "open": "number (double)",
  "high": "number (double)",
  "low": "number (double)",
  "close": "number (double)",
  "volume": "number (double)",
  "baseVolume": "number (double)"
}

Order

id: string (uuid)

unique ID of this order, assigned by the service (always present) Note that this ID is completely unrelated to the optional ClientOrderId.

marketSymbol: string

unique symbol of the market this order is being placed on (always present, matches the field in NewOrder)

direction: string BUY, SELL

order direction (always present, matches the field in NewOrder)

type: string LIMIT, MARKET, CEILING_LIMIT, CEILING_MARKET

order type (always present, matches the field in NewOrder)

quantity: number (double)

quantity (optional, matches the field in NewOrder)

limit: number (double)

limit price (optional, matches the field in NewOrder)

ceiling: number (double)

ceiling (optional, matches the field in NewOrder)

timeInForce: string GOOD_TIL_CANCELLED, IMMEDIATE_OR_CANCEL, FILL_OR_KILL, POST_ONLY_GOOD_TIL_CANCELLED

time in force (always present, matches the field in NewOrder)

expiresAt: string (date-time)

time when this order should expire (optional, matches the field in NewOrder)

clientOrderId: string (uuid)

client-provided identifier for advanced order tracking (optional, matches the field in NewOrder)

fillQuantity: number (double)

fill quantity (always present, even when there is no fill)

commission: number (double)

commission (always present, even when there is no fill)

proceeds: number (double)

proceeds (always present, even when there is no fill)

status: string OPEN, CLOSED

order status (always present)

createdAt: string (date-time)

timestamp (UTC) of order creation (always present)

updatedAt: string (date-time)

timestamp (UTC) of last order update (optional)

closedAt: string (date-time)

timestamp (UTC) when this order was closed (optional)

Example
{
  "id": "string (uuid)",
  "marketSymbol": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "expiresAt": "string (date-time)",
  "clientOrderId": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "status": "string",
  "createdAt": "string (date-time)",
  "updatedAt": "string (date-time)",
  "closedAt": "string (date-time)"
}

NewOrder

marketSymbol: string

unique symbol of the market this order is being placed on

direction: string BUY, SELL

order direction

type: string LIMIT, MARKET, CEILING_LIMIT, CEILING_MARKET

order type

quantity: number (double)

quantity (optional, must be included for non-ceiling orders and excluded for ceiling orders)

ceiling: number (double)

ceiling (optional, must be included for ceiling orders and excluded for non-ceiling orders)

limit: number (double)

limit (optional, must be included for LIMIT orders and excluded for MARKET orders)

timeInForce: string GOOD_TIL_CANCELLED, IMMEDIATE_OR_CANCEL, FILL_OR_KILL, POST_ONLY_GOOD_TIL_CANCELLED

time in force

expiresAt: string (date-time)

time when this order should expire.

clientOrderId: string (uuid)

client-provided identifier for advanced order tracking (optional)

Example
{
  "marketSymbol": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "ceiling": "number (double)",
  "limit": "number (double)",
  "timeInForce": "string",
  "expiresAt": "string (date-time)",
  "clientOrderId": "string (uuid)"
}

ServicePing

serverTime: integer (int64)

Server time in epoch millisecond format, rounded down to the nearest second. The same format must be used in the Api-Timestamp header of authenticated requests.

Example
{
  "serverTime": "integer (int64)"
}

Subaccount

id: string (uuid)

unique ID of this subaccount

createdAt: string (date-time)

timestamp when this subaccount was created

Example
{
  "id": "string (uuid)",
  "createdAt": "string (date-time)"
}

NewSubaccount

Example
{}

SentTransferInfo

toSubaccountId: string (uuid)

receiver account ID

toMasterAccount: boolean

transfer to master account

id: string (uuid)

unique ID for this transfer

requestId: string (uuid)

client transfer id

currencySymbol: string

currency symbol transfered

amount: number (double)

amount transfered

executedAt: string (date-time)

time stamp when this transfer was executed

Example
{
  "toSubaccountId": "string (uuid)",
  "toMasterAccount": "boolean",
  "id": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "executedAt": "string (date-time)"
}

ReceivedTransferInfo

fromSubaccountId: string (uuid)

sender account ID

fromMasterAccount: boolean

transfer from master account

id: string (uuid)

unique ID for this transfer

requestId: string (uuid)

client transfer id

currencySymbol: string

currency symbol transfered

amount: number (double)

amount transfered

executedAt: string (date-time)

time stamp when this transfer was executed

Example
{
  "fromSubaccountId": "string (uuid)",
  "fromMasterAccount": "boolean",
  "id": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "executedAt": "string (date-time)"
}

NewTransfer

toSubaccountId: string (uuid)

receiver account ID

requestId: string (uuid)

client transfer id

currencySymbol: string

currency symbol transfered

amount: number (double)

amount transfered

toMasterAccount: boolean

transfer to master account

Example
{
  "toSubaccountId": "string (uuid)",
  "requestId": "string (uuid)",
  "currencySymbol": "string",
  "amount": "number (double)",
  "toMasterAccount": "boolean"
}

Withdrawal

id: string (uuid)

unique ID for this withdrawal, assigned by the service (always present)

currencySymbol: string

unique symbol of currency to withdraw (always present, matches the field in NewWithdrawal)

quantity: number (double)

quantity to withdraw (always present, matches the field in NewWithdrawal)

cryptoAddress: string

crypto address for this withdrawal (always present, matches the field in NewWithdrawal)

cryptoAddressTag: string

custom message further specifying how to complete the withdrawal (optional, matches the field in NewWithdrawal)

txCost: number (double)

TxCost of this withdrawal (always present)

txId: string

TxID associated with this withdrawal (optional)

status: string REQUESTED, AUTHORIZED, PENDING, COMPLETED, ERROR_INVALID_ADDRESS, CANCELLED

current status of this withdrawal (always present)

createdAt: string (date-time)

time stamp when this withdrawal was initiated (always present)

completedAt: string (date-time)

time stamp when this withdrawal was completed (optional)

Example
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string",
  "txCost": "number (double)",
  "txId": "string",
  "status": "string",
  "createdAt": "string (date-time)",
  "completedAt": "string (date-time)"
}

NewWithdrawal

currencySymbol: string

unique symbol of the currency to withdraw from

quantity: number (double)

quantity to withdraw

cryptoAddress: string

crypto address to withdraw funds to

cryptoAddressTag: string

custom message further specifying how to complete the withdrawal (optional, depends on whether the cryptoAddress is sufficient for this currency)

Example
{
  "currencySymbol": "string",
  "quantity": "number (double)",
  "cryptoAddress": "string",
  "cryptoAddressTag": "string"
}