Bittrex API API Reference

Bittrex provides a simple and powerful API consisting of REST endpoints for transactional operations and a complementary Websocket service providing streaming market, order, and balance updates.

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 support center.

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

Availability

The V3-Alpha API is available on an invite-only basis at this time. Later releases will be made publicly available to the community.

Pre-Release Warning

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

The V3-Alpha 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-Alpha 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-Alpha 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-Alpha API or other pre-release APIs.

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: limit, startingAfter and endingBefore. These parameters, if necessary are specified as query parameters on the HTTP request.

Arguments:

  • limit(optional): A limit on the number of objects to be returned between 1 and 200, defaults to 100
  • startingAfter(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 startingAfter=objFoo in order to fetch the next page of the list. Typically used for paginating in the forward direction.

  • endingBefore(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 endingBefore=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?limit=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?limit=10&startingAfter=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?limit=10&endinBefore=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

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 ALLOWED NOT ALLOWED NOT ALLOWED NOT ALLOWED
IMMEDIATE_OR_CANCEL ALLOWED ALLOWED ALLOWED ALLOWED
FILL_OR_KILL ALLOWED ALLOWED ALLOWED ALLOWED
POST_ONLY_GOOD_TIL_CANCELLED ALLOWED NOT ALLOWED NOT ALLOWED NOT ALLOWED

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.

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 Guid 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 account information.

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

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "email": "string",
  "isInternational": "boolean",
  "isFiat": "boolean"
}

Addresses

GET /addresses

List deposit addresses.

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"
  }
]

POST /addresses

Request provisioning of a deposit address.

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"
}
200 OK

OK

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

GET /addresses/{currencySymbol}

Retrieve the deposit address for a particular currency.

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"
}

Balances

GET /balances

List account balances across available currencies.

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.

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",
    "baseAddress": "string",
    "coinType": "string",
    "status": "string",
    "isInternational": "boolean",
    "minConfirmations": "integer (int32)",
    "notice": "string",
    "txFee": "number (double)"
  }
]

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",
  "baseAddress": "string",
  "coinType": "string",
  "status": "string",
  "isInternational": "boolean",
  "minConfirmations": "integer (int32)",
  "notice": "string",
  "txFee": "number (double)"
}

Deposits

GET /deposits

List deposits.

status: string PENDING, COMPLETED, ORPHANED, INVALIDATED, ERROR_CONTACT_SUPPORT
in query

filter by deposit status

currencySymbol: string
in query

filter by currency

startingAfter: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to start after, in the sort order of the given endpoint

endingBefore: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to end before, in the sort order of the given endpoint

limit: integer (int32)
in query

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

Request Url Example
https://api.bittrex.com/v3/deposits?status=COMPLETED
200 OK

OK

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

GET /deposits/{depositId}

Retrieve information for a specific deposit.

depositId: string (uuid)
in path

(guid-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)",
  "address": "string",
  "txId": "string",
  "confirmations": "integer (int32)",
  "createdAt": "string (date-time)",
  "updatedAt": "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)
[
  {
    "name": "string",
    "baseCurrencySymbol": "string",
    "baseCurrencyName": "string",
    "quoteCurrencySymbol": "string",
    "quoteCurrencyName": "string",
    "minTradeSize": "number (double)",
    "status": "string",
    "isInternational": "boolean",
    "createdAt": "string (date-time)",
    "notice": "string",
    "logoUrl": "string"
  }
]

GET /markets/summaries

List market summaries.

200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": "string",
    "high": "number (double)",
    "low": "number (double)",
    "volume": "number (double)",
    "last": "number (double)",
    "baseVolume": "number (double)",
    "bid": "number (double)",
    "ask": "number (double)",
    "openBuyOrders": "integer (int32)",
    "openSellOrders": "integer (int32)",
    "previousDay": "number (double)",
    "updatedAt": "string (date-time)"
  }
]

GET /markets/{marketName}

Retrieve information for a specific market.

marketName: string
in path

name of market to retrieve

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

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": "string",
  "baseCurrencySymbol": "string",
  "baseCurrencyName": "string",
  "quoteCurrencySymbol": "string",
  "quoteCurrencyName": "string",
  "minTradeSize": "number (double)",
  "status": "string",
  "isInternational": "boolean",
  "createdAt": "string (date-time)",
  "notice": "string",
  "logoUrl": "string"
}

GET /markets/{marketName}/summary

Retrieve summary for a specific market.

marketName: string
in path

name of market to retrieve summary for

200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": "string",
  "high": "number (double)",
  "low": "number (double)",
  "volume": "number (double)",
  "last": "number (double)",
  "baseVolume": "number (double)",
  "bid": "number (double)",
  "ask": "number (double)",
  "openBuyOrders": "integer (int32)",
  "openSellOrders": "integer (int32)",
  "previousDay": "number (double)",
  "updatedAt": "string (date-time)"
}

GET /markets/{marketName}/orderbook

Retrieve the order book for a specific market.

marketName: string
in path

name of market to retrieve order book for

depth: integer (int32)
in query

depth of order book to return

Request Url Example
https://api.bittrex.com/v3/markets/{marketName}/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/{marketName}/trades

Retrieve the recent trades for a specific market.

marketName: string
in path

name of market to retrieve recent trades for

200 OK

OK

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

GET /markets/{marketName}/candles

Retrieve candles for a specific market.

marketName: string
in path

name of market to retrieve candles for

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

desired time interval between candles

200 OK

OK

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "t": "string (date-time)",
    "o": "number (double)",
    "h": "number (double)",
    "l": "number (double)",
    "c": "number (double)",
    "v": "number (double)",
    "bv": "number (double)"
  }
]

Orders

GET /orders/closed

List closed orders.

marketName: string
in query

filter by market ID

startingAfter: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to start after, in the sort order of the given endpoint

endingBefore: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to end before, in the sort order of the given endpoint

limit: integer (int32)
in query

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

200 OK

OK

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

GET /orders/open

List open orders.

marketName: string
in query

filter by market ID

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)",
    "marketName": "string",
    "direction": "string",
    "type": "string",
    "quantity": "number (double)",
    "limit": "number (double)",
    "ceiling": "number (double)",
    "timeInForce": "string",
    "fillQuantity": "number (double)",
    "commission": "number (double)",
    "proceeds": "number (double)",
    "clientOrderId": "string (uuid)",
    "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

(guid-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)",
  "marketName": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "clientOrderId": "string (uuid)",
  "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

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

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

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "clientOrderId": "string (uuid)",
  "status": "string",
  "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
{
                  "marketName": "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
{
                  "marketName": "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
{
                  "marketName": "string",
                  "direction": "string",
                  "type": "CEILING_LIMIT",
                  "quantity": "number (double)",
                  "limit": "number (double)",
                  "ceiling": "number (double)",
                  "timeInForce": "IMMEDIATE_OR_CANCEL||FILL_OR_KILL",
                  "clientOrderId": "string (uuid)"
                }
                
Request Body Example For Ceiling Market Order
{
                  "marketName": "string",
                  "direction": "string",
                  "type": "CEILING_MARKET",
                  "ceiling": "number (double)",
                  "timeInForce": "IMMEDIATE_OR_CANCEL||FILL_OR_KILL",
                  "clientOrderId": "string (uuid)"
                }
                
200 OK

OK

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

Status

GET /status

Check service status.

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

OK

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

Subaccounts

GET /subaccounts

List subaccounts. (NOTE: This API is limited to partners and not available for traders.)

startingAfter: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to start after, in the sort order of the given endpoint

endingBefore: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to end before, in the sort order of the given endpoint

limit: integer (int32)
in query

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

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
{}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "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

(guid-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)"
}

Withdrawals

GET /withdrawals

List withdrawals.

status: string PENDING, AUTHORIZED, COMPLETED, ERROR_CONTACT_SUPPORT, ERROR_INVALID_ADDRESS, CANCELLED
in query

filter by withdrawal status

currencySymbol: string
in query

filter by currency

startingAfter: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to start after, in the sort order of the given endpoint

endingBefore: string (uuid)
in query

(guid-formatted string) - unique identifier of the item to end before, in the sort order of the given endpoint

limit: integer (int32)
in query

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

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

OK

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

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)",
  "address": "string",
  "message": "string"
}
200 OK

OK

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "address": "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

(guid-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)",
  "address": "string",
  "txCost": "number (double)",
  "txId": "string",
  "status": "string",
  "createdAt": "string (date-time)",
  "completedAt": "string (date-time)"
}

DELETE /withdrawals/{withdrawalId}

Cancel a withdrawal.

withdrawalId: string (uuid)
in path

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

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

OK

type
object
Response Content-Types: application/json
Response Example (200 OK)
"object"

Schema Definitions

Account

id: string (uuid)

the account ID associated with this API key / user

email: string

the email address associated with this API key / user

isInternational: boolean

true if this account has access to international markets, false otherwise

isFiat: boolean

true if this account has access to fiat markets, false otherwise

Example
{
  "id": "string (uuid)",
  "email": "string",
  "isInternational": "boolean",
  "isFiat": "boolean"
}

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

Example
{
  "status": "string",
  "currencySymbol": "string",
  "cryptoAddress": "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

baseAddress: string

base address of this currency

coinType: string

coin type of this currency

status: string ONLINE, OFFLINE, ERROR

currency status (online, offline, etc.)

isInternational: boolean

true if this market is restricted to international users

minConfirmations: integer (int32)

minimum number of confirmations

notice: string

news or alerts regarding this currency

txFee: number (double)

transaction fee for this currency

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

PaginationParameters

startingAfter: string (uuid)

unique identifier of the item to start after, in the sort order of the given endpoint

endingBefore: string (uuid)

unique identifier of the item to end before, in the sort order of the given endpoint

limit: integer (int32)

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

Example
{
  "startingAfter": "string (uuid)",
  "endingBefore": "string (uuid)",
  "limit": "integer (int32)"
}

Deposit

id: string (uuid)

unique ID for this deposit

currencySymbol: string

unique symbol of the currency being deposited to

quantity: number (double)

quantity to deposit

address: string

crypto address for this deposit

txId: string

TxID for the deposit

confirmations: integer (int32)

current count of confirmations

createdAt: string (date-time)

time stamp when this deposit was initiated

updatedAt: string (date-time)

time stamp when this deposit was last updated

status: string PENDING, COMPLETED, ORPHANED, INVALIDATED, ERROR_CONTACT_SUPPORT

current status of this deposit

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

Market

name: string

unique name for this market

baseCurrencySymbol: string

unique symbol for base currency

baseCurrencyName: string

long name for base currency

quoteCurrencySymbol: string

unique symbol for quote currency

quoteCurrencyName: string

long name for quote currency

minTradeSize: number (double)

minimum trade size

status: string ONLINE, OFFLINE, ERROR

true if this market is currently active

isInternational: boolean

true if this market is restricted to international users

createdAt: string (date-time)

timestamp in UTC when this market was created

notice: string

notice or alert info

logoUrl: string

logo URL

Example
{
  "name": "string",
  "baseCurrencySymbol": "string",
  "baseCurrencyName": "string",
  "quoteCurrencySymbol": "string",
  "quoteCurrencyName": "string",
  "minTradeSize": "number (double)",
  "status": "string",
  "isInternational": "boolean",
  "createdAt": "string (date-time)",
  "notice": "string",
  "logoUrl": "string"
}

MarketSummary

name: string

unique name for this market

high: number (double)

high

low: number (double)

low

volume: number (double)

volume

last: number (double)

last

baseVolume: number (double)

base volume

bid: number (double)

bid

ask: number (double)

ask

openBuyOrders: integer (int32)

count of open buy orders

openSellOrders: integer (int32)

count of open sell orders

previousDay: number (double)

previous day

updatedAt: string (date-time)

timestamp in UTC when market summary was last updated

Example
{
  "name": "string",
  "high": "number (double)",
  "low": "number (double)",
  "volume": "number (double)",
  "last": "number (double)",
  "baseVolume": "number (double)",
  "bid": "number (double)",
  "ask": "number (double)",
  "openBuyOrders": "integer (int32)",
  "openSellOrders": "integer (int32)",
  "previousDay": "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

executedAt: string (date-time)

timestamp in UTC when order was filled

quantity: number (double)

quantity

rate: number (double)

rate

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

Candle

t: string (date-time)

time stamp of tick in UTC

o: number (double)

open

h: number (double)

high

l: number (double)

low

c: number (double)

close

v: number (double)

volume

bv: number (double)

base volume

Example
{
  "t": "string (date-time)",
  "o": "number (double)",
  "h": "number (double)",
  "l": "number (double)",
  "c": "number (double)",
  "v": "number (double)",
  "bv": "number (double)"
}

Order

id: string (uuid)

unique ID of this order

marketName: string

unique name 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

limit: number (double)

limit price, if present

ceiling: number (double)

ceiling, if present

timeInForce: string GOOD_TIL_CANCELLED, IMMEDIATE_OR_CANCEL, FILL_OR_KILL, POST_ONLY_GOOD_TIL_CANCELLED

time in force

fillQuantity: number (double)

fill quantity

commission: number (double)

commission

proceeds: number (double)

proceeds

clientOrderId: string (uuid)

client-provided identifier for advanced order tracking

status: string OPEN, CLOSED

order status

createdAt: string (date-time)

timestamp (UTC) of order creation

updatedAt: string (date-time)

timestamp (UTC) of last order update

closedAt: string (date-time)

timestamp (UTC) when this order was closed

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

OrderCancelResult

id: string (uuid)

unique ID of this order

fillQuantity: number (double)

fill quantity

commission: number (double)

commission

proceeds: number (double)

proceeds

clientOrderId: string (uuid)

client-provided identifier for advanced order tracking

status: string OPEN, CLOSED

order status

updatedAt: string (date-time)

timestamp (UTC) of last order update

closedAt: string (date-time)

timestamp (UTC) when this order was closed

Example
{
  "id": "string (uuid)",
  "fillQuantity": "number (double)",
  "commission": "number (double)",
  "proceeds": "number (double)",
  "clientOrderId": "string (uuid)",
  "status": "string",
  "updatedAt": "string (date-time)",
  "closedAt": "string (date-time)"
}

Execution

id: string (uuid)

unique ID of this execution

marketName: string

market name where this execution took place

executedAt: string (date-time)

time when the execution was processed

quantity: number (double)

quantity traded during this execution

rate: number (double)

rate at which this trade was executed

makerOrderId: string (uuid)

maker order ID -- only available if your order was the taker for this execution

takerOrderId: string (uuid)

taker order ID -- only available if your order was the taker for this execution

makerCommission: number (double)

commission charged -- only available if your order was the maker for this execution

takerCommission: number (double)

commission charged -- only available if your order was the taker for this execution

Example
{
  "id": "string (uuid)",
  "marketName": "string",
  "executedAt": "string (date-time)",
  "quantity": "number (double)",
  "rate": "number (double)",
  "makerOrderId": "string (uuid)",
  "takerOrderId": "string (uuid)",
  "makerCommission": "number (double)",
  "takerCommission": "number (double)"
}

NewOrder

marketName: string

unique name 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.For more details look at the Placing Order section

quantity: number (double)

quantity, if present

limit: number (double)

limit, if present

ceiling: number (double)

ceiling, if present

timeInForce: string GOOD_TIL_CANCELLED, IMMEDIATE_OR_CANCEL, FILL_OR_KILL, POST_ONLY_GOOD_TIL_CANCELLED

time in force

clientOrderId: string (uuid)

client-provided identifier for advanced order tracking

Example
{
  "marketName": "string",
  "direction": "string",
  "type": "string",
  "quantity": "number (double)",
  "limit": "number (double)",
  "ceiling": "number (double)",
  "timeInForce": "string",
  "clientOrderId": "string (uuid)"
}

ServiceStatus

status: string GREEN, YELLOW, RED

overall service status

serverTime: integer (int64)

server time in epoch millisecond format

Example
{
  "status": "string",
  "serverTime": "integer (int64)"
}

Subaccount

id: string (uuid)

unique ID of this subaccount

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

NewSubaccount

Example
{}

Withdrawal

id: string (uuid)

unique ID for this withdrawal

currencySymbol: string

unique symbol of currency to withdraw

quantity: number (double)

quantity to withdraw

address: string

crypto address for this withdrawal

txCost: number (double)

TxCost of this withdrawal

txId: string

TxID associated with this withdrawal

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

current status of this withdrawal

createdAt: string (date-time)

time stamp when this withdrawal was initiated

completedAt: string (date-time)

time stamp when this withdrawal was completed

Example
{
  "id": "string (uuid)",
  "currencySymbol": "string",
  "quantity": "number (double)",
  "address": "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

address: string

crypto address to withdraw funds to

message: string

custom message (optional, depends on the currency being withdrawn)

Example
{
  "currencySymbol": "string",
  "quantity": "number (double)",
  "address": "string",
  "message": "string"
}