NAV Navbar
shell

Introduction

Poloniex provides both HTTP and websocket APIs for interacting with the exchange. Both allow read access to public market data and private read access to your account. Private write access to your account is available via the private HTTP API.

The public HTTP endpoints are accessed via GET requests while the private endpoints are accessed via HMAC-SHA256 signed POST requests using API keys. Both types of HTTP endpoints return results in JSON format.

The websocket API allows push notifications about public market data and your private account. Similarly to the HTTP API, it requires HMAC-SHA256 signed requests using API keys for requests related to your private account.

Poloniex also offers SDKs in various languages, which can be used to access both HTTP and Websockets endpoints. More details can be found here.

Sandbox environment is available for testing both the new and the legacy API. Sandbox docs are available here. Email client services (api-support@poloniex.com) with any questions.

REST API

Overview

The HTTP API allows read access to public market data through the public endpoints and read / write access to your private account via the private endpoints.

Authentication (API Signature) is not required for any public requests.

Private HTTP endpoints e.g. https://api.poloniex.com/orders are authenticated using HMAC-SHA256 signed request. See details here Authentication.

Symbol convention is <base_currency>_<quote_currency> e.g. BTC_USDT, which is opposite from legacy system, which follows <quote_currency>_<base_currency> format e.g. USDT_BTC.

Authentication

Authentication (API Signature) is not required for any public requests.

All private HTTP endpoints require authentication using HMAC-SHA256 signed request with the following headers:

Note: POST\DELETE requests should contain application/json type content and be in valid JSON format.

Signature Example Code

We provide signature codes in three languages, Java/Python/NodeJS, and examples of request codes, Here.

API Signature Generation

Steps:

  1. Compose a “Request String” to be used for the generation of the digital signature which would include:
    • Method type (GET/POST/DELETE/etc) followed "\n" e.g. GET\n
    • Access path, followed "\n" e.g. /orders\n
    • Add the timestamp parameter and List of parameters sorted by ASCII order delimited by & e.g.:
      limit=5&signTimestamp=1659259836247&symbol=ETH_USDT
    • NOTE: all parameters must be URL/UTF-8 encoded. i.e. space is encoded as "%20"
    • The final string for the signature generation, based on the example values above will be:
      GET\n
      /orders\n
      limit=5&symbol=ETH_USDT
    • DELETE or POST Method with http body, for example: To cancel orders by IDs:
      /orders/cancelByIds\n
      • Add requestBody and timestamp:
        requestBody={"orderIds":["1234567890"],"clientOrderIds": ["myId-1"]}
        signTimestamp=1631018760000
      • Timestamp needs to be added. Timestamps are valid for 1 minute. Connect the parameters in the above order with the character "&":
        requestBody={"orderIds":["1234567890"],"clientOrderIds":["myId-1"]}&signTimestamp=1631018760000
      • The final string to be used for signature calculation is composed as follows:
        DELETE\n
        /orders/cancelByIds/\n
        requestBody={"orderIds":["1234567890"],"clientOrderIds":["myId-1"]}&signTimestamp=1631018760000
    • DELETE or POST Method with no http body, for example : To Cancel Order by Id:
      /orders/1
      • Timestamp needs to be added. Timestamps are valid for 1 minute.
        signTimestamp=1631018760000
      • The final string to be used for signature calculation is composed as follows:
        DELETE\n
        /orders/1\n
        signTimestamp=1631018760000

  2. Generate a digital signature using the "Request String" generated in the previous step and your key (Secret Key):
    • Call the HmacSHA256 hash function to get the hash value with the request string and API private key obtained in the previous step as two parameters.
    • Encode this hash with base-64 and the resulting value is used as the digital signature for this interface call.
    • Example: 5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8=

  3. Request example using the above generated signature:

Note: POST\DELETE requests should contain application/json type content and be in valid JSON format.

Sample GET command: curl -X GET --header 'key: A3xxxxxx-99xxxxxx-84xxxxxx-72xxxxxx' --header 'signatureMethod: HmacSHA256' --header 'signatureVersion: 2' --header 'signTimestamp: 1631018760000' --header 'signature: 5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8=' 'https://api.poloniex.com/orders?symbol=ETH_USDT&limit=5'

Rate Limits

Public Endpoints

Endpoint Rate Limit (per second)
/markets
/markets/{symbol}/trades
/markets/ticker24h
/markets/{symbol}/ticker24h
/currencies
/currencies/{currency}


10
/markets/{symbol}
/markets/price
/markets/{symbol}/price
/markets/markPrice
/markets/{symbol}/markPrice
/markets/{symbol}/markPriceComponents
/markets/{symbol}/orderBook
/markets/{symbol}/candles
/timestamp
/markets/collateralInfo
/markets/{currency}/collateralInfo
/markets/borrowRatesInfo


200

Authenticated Endpoints

Method Endpoint
GET /accounts
GET /accounts/balances
GET /accounts/{id}/balances
POST /accounts/transfer
GET /accounts/transfer/{id}
GET /subaccounts
GET /subaccounts/{id}/balances
GET /subaccounts/transfer/{id}
GET /margin/accountMargin
GET /margin/borrowStatus
GET /margin/maxSize
POST /orders
GET /orders/{id}
DELETE /orders/{id}
GET /orders/{id}/trades
POST /orders/killSwitch
GET /orders/killSwitchStatus
POST /smartorders
GET /smartorders/{id}
DELETE /smartorders/{id}
MVP Status Rate Limit (per second)
Retail 50
Silver 50
Gold 50
Market Maker 500
Token Market Maker 1000
Method Endpoint
GET /accounts/transfer
GET /accounts/activity
GET /subaccounts/balances
GET /subaccounts/transfer
POST /subaccounts/transfer
GET /feeinfo
GET /wallets/addresses
GET /wallets/addresses/{currency}
POST /wallets/address
POST /wallets/withdraw
GET /wallets/activity
GET /orders
POST /orders/batch
PUT /orders
DELETE /orders/cancelByIds
DELETE /orders
GET /orders/history
GET /smartorders
PUT /smartorders
DELETE /smartorders/cancelByIds
DELETE /smartorders
GET /smartorders/history
GET /trades
MVP Status Rate Limit (per second)
Retail 10
Silver 10
Gold 20
Market Maker 50
Token Market Maker 50

Public Endpoints

The public HTTP API allows read access to public market data.

All methods take HTTP GET requests and return output in JSON format. No authentication is necessary but you must not excessively use any API endpoint.

Reference Data

Symbol Information

GET https://api.poloniex.com/markets 

or

GET https://api.poloniex.com/markets/{symbol} 

/markets

/markets/{symbol}

Example output:

[
  {
    "symbol": "BTC_USDT",
    "baseCurrencyName": "BTC",
    "quoteCurrencyName": "USDT",
    "displayName": "BTC/USDT",
    "state": "NORMAL",
    "visibleStartTime": 1659018819512,
    "tradableStartTime": 1659018819512,
    "symbolTradeLimit": {
      "symbol": "BTC_USDT",
      "priceScale": 2,
      "quantityScale": 6,
      "amountScale": 2,
      "minQuantity": "0.000001",
      "minAmount": "1",
      "highestBid": "0",
      "lowestAsk": "0"
    },
    "crossMargin": {
      "supportCrossMargin": true,
      "maxLeverage": 3
    }
  },
  {
    "symbol": "ETH_USDT",
    "baseCurrencyName": "ETH",
    "quoteCurrencyName": "USDT",
    "displayName": "ETH/USDT",
    "state": "NORMAL",
    "visibleStartTime": 1659018820007,
    "tradableStartTime": 1659018820007,
    "symbolTradeLimit": {
      "symbol": "ETH_USDT",
      "priceScale": 2,
      "quantityScale": 6,
      "amountScale": 2,
      "minQuantity": "0.000001",
      "minAmount": "1",
      "highestBid": "0",
      "lowestAsk": "0"
    },
    "crossMargin": {
      "supportCrossMargin": true,
      "maxLeverage": 3
    }
  },
  
]

/markets : get all symbols and their tradeLimit info. priceScale is referring to the max number of decimals allowed for a given symbol. For example, priceScale of 2 implies accepted values like 200.34, 13.2, 100 and priceScale of 0 implies accepted values like 200, 92, 13. Fields quantityScale and amountScale work in similar fashion. minQuantity and minAmount refer to the minimum size of the order.

Response Field Data Type Description
symbol String symbol name
baseCurrencyName String base currency name
quoteCurrencyName String quote currency name
displayName String symbol display name
state String NORMAL, PAUSE, POST_ONLY
visibleStartTime Long time since symbol is visible in the frontend
tradableStartTime Long time since symbol is tradable
symbolTradeLimit Map symbol market configuration
crossMargin Map symbol cross margin info

symbolTradeLimit field

Response Field Data Type Description
symbol String symbol name
priceScale Integer decimal precision for price
quantityScale Integer decimal precision for quantity
amountScale Integer decimal precision for amount
minQuantity String minimum required quantity
minAmount String minimum required amount
highestBid String maximum allowed bid price (market bound)
lowestAsk String minimum allowed ask price (market bound)

crossMargin field

Response Field Data Type Description
supportCrossMargin Boolean indicates if symbol supports cross margin
maxLeverage Integer maximum supported leverage

/markets/{symbol} : get a single symbol and its tradeLimit info.

Request Parameter Data Type Required Description
symbol String true symbol name

Response fields and symbolTradeLimit fields are the same as those of /markets

Currency Information

GET https://api.poloniex.com/currencies?includeMultiChainCurrencies={true|false}

or

GET https://api.poloniex.com/currencies/{currency}?includeMultiChainCurrencies={true|false}

/currencies

/currencies/{currency}

Example output of /currencies:

[
  {
    "ETH" : {
    "id" : 267,
    "name" : "Ethereum",
    "description" : "Sweep to Main Account",
    "type" : "address",
    "withdrawalFee" : "0.00107535",
    "minConf" : 12,
    "depositAddress" : null,
    "blockchain" : "ETH",
    "delisted" : false,
    "tradingState" : "NORMAL",
    "walletState" : "ENABLED",
    "walletDepositState" : "ENABLED",
    "walletWithdrawalState" : "ENABLED",
    "parentChain" : null,
    "isMultiChain" : true,
    "isChildChain" : false,
    "supportCollateral": false,
    "supportBorrow": false,
    "childChains" : [ "ETHTRON" ]
    }
  },  
  {
    "ABY": {
      "id": 2,
      "name": "ArtByte",
      "description": "BTC Clone",
      "type": "address",
      "withdrawalFee": "0.01000000",
      "minConf": 10000,
      "depositAddress": null,
      "blockchain": "ABY",
      "delisted": true,
      "tradingState": "OFFLINE",
      "walletState": "DISABLED",
      "walletDepositState" : "DISABLED",
      "walletWithdrawalState" : "DISABLED",
      "parentChain": null,
      "isMultiChain": false,
      "isChildChain": false,
      "supportCollateral": false,
      "supportBorrow": false,
      "childChains": []
    }
  },
  ...
]

/currencies : get all supported currencies

Request Parameter Data Type Required Description
includeMultiChainCurrencies Boolean false Default is false. Indicates if multi chain currencies are included. If set to true, additionally adds a new row for each currency on their respective chain (i.e USDT, USDTETH, USDTTRON will all have entries).
Response Field Data Type Description
currency Json table below

currency fields

Response Field Data Type Description
id Integer currency id
name String currency name
description String the type of blockchain the currency runs on
type String currency type
withdrawalFee String The network fee necessary to withdraw this currency
minConf Integer the minimum number of blocks necessary before a deposit can be credited to an account
depositAddress String if available, the deposit address for this currency.
blockchain String the blockchain the currency runs on
delisted Boolean designates whether (true) or not (false) this currency has been delisted from the exchange
tradingState String currency trading state: NORMAL or OFFLINE
walletState String currency state: ENABLED or DISABLED
walletDepositState String currency deposit state: ENABLED or DISABLED
walletWithdrawalState String currency withdrawal state: ENABLED or DISABLED
parentChain String only displayed when includeMultiChainCurrencies is set to true. The parent chain
isMultiChain Boolean only displayed when includeMultiChainCurrencies is set to true. Indicates whether (true) or not (false) this currency is a multi chain
isChildChain Boolean only displayed when includeMultiChainCurrencies is set to true. Indicates whether (true) or not (false) this currency is a child chain
supportCollateral Boolean indicates if this currency supports collateral in cross margin
supportBorrow Boolean indicates if this currency supports borrows in cross margin
childChains Array of String only displayed when includeMultiChainCurrencies is set to true. The child chains

Example output of /currencies/{currency}:

{
  "BNB": {
    "id": 343,
    "name": "Binance Coin",
    "description": "Sweep to Main Account",
    "type": "address-payment-id",
    "withdrawalFee": "0.00000001",
    "minConf": 0,
    "depositAddress": null,
    "blockchain": "BNB",
    "delisted": false,
    "tradingState": "NORMAL",
    "walletState": "ENABLED",
    "walletDepositState" : "ENABLED",
    "walletWithdrawalState" : "ENABLED",
    "parentChain": null,
    "isMultiChain": true,
    "isChildChain": false,
    "supportCollateral": true,
    "supportBorrow": false,
    "childChains": [
      "BSC"
    ]
  }
}

/currencies/{currency} : get data for a supported currency

Request Parameter Data Type Required Description
currency String true currency name
includeMultiChainCurrencies Boolean false Default is false. Indicates if multi chain currencies are included. If set to true, additionally adds a new row for each currency on their respective chain (i.e USDT, USDTETH, USDTTRON will all have entries).

The response field and currency fields are the same as those of /currencies

CurrencyV2 Information

GET https://api.poloniex.com/v2/currencies

or

GET https://api.poloniex.com/v2/currencies/{currency}

/v2/currencies

/v2/currencies/{currency}

Example output of /v2/currencies:

[
    {
        "id": 1,
        "coin": "1CR",
        "delisted": true,
        "tradeEnable": false,
        "name": "1CRedit",
        "networkList": [
            {
                "id": 1,
                "coin": "1CR",
                "name": "1CRedit",
                "currencyType": "address",
                "blockchain": "1CR",
                "withdrawalEnable": false,
                "depositEnable": false,
                "depositAddress": null,
                "withdrawMin": null,
                "decimals": 8,
                "withdrawFee": "0.01000000",
                "minConfirm": 10000
            }
        ]
    },
    {
        "id": 446,
        "coin": "AAVE",
        "delisted": false,
        "tradeEnable": true,
        "name": "Aave",
        "networkList": [
            {
                "id": 446,
                "coin": "AAVE",
                "name": "Ethereum",
                "currencyType": "address",
                "blockchain": "ETH",
                "withdrawalEnable": true,
                "depositEnable": true,
                "depositAddress": null,
                "withdrawMin": null,
                "decimals": 18,
                "withdrawFee": "0.22553338",
                "minConfirm": 12
            }
        ],
        "supportCollateral": false,
        "supportBorrow": false
    },
    ...
]

/v2/currencies : get all supported currencies

Response Field Data Type Description
currency Json table below

currency fields

Response Field Data Type Description
id Integer currency id
coin String currency symbol
delisted Boolean designates whether (true) or not (false) this currency has been delisted from the exchange
tradeEnable Boolean designates whether (true) or not (false) this currency can be traded on the exchange
name String currency name
supportCollateral Boolean indicates if this currency supports collateral in cross margin
supportBorrow Boolean indicates if this currency supports borrows in cross margin
networkList Array of Json the networks the currency runs on
Response Field Data Type Description
id Integer currency id
coin String currency symbol
name String currency name
currencyType String currency type: address or address-payment-id
blockchain String the networks the currency runs on
withdrawalEnable Boolean designates whether (true) or not (false) this currency can be withdrawn
depositEnable Boolean designates whether (true) or not (false) this currency can be allowed to deposit
depositAddress String if available, the deposit address for this currency
withdrawMin String The minimum withdrawal amount, or NULL if none
decimals String decimals of currency
withdrawFee String withdraw fee of currency
minConfirm Integer the minimum number of blocks necessary before a deposit can be credited to an account

Example output of /v2/currencies/{currency}:

{
  "id" : 315,
  "coin" : "TRX",
  "delisted" : false,
  "tradeEnable" : true,
  "name" : "Tron",
  "networkList" : [ {
    "id" : 536,
    "coin" : "TRXETH",
    "name" : "Ethereum",
    "currencyType" : "address",
    "blockchain" : "ETH",
    "withdrawalEnable" : false,
    "depositEnable" : true,
    "depositAddress" : null,
    "decimals" : 6,
    "withdrawMin" : null,
    "withdrawFee" : "0.00000000",
    "minConfirm" : 12
  }, {
    "id" : 315,
    "coin" : "TRX",
    "name" : "Tron",
    "currencyType" : "address",
    "blockchain" : "TRX",
    "withdrawalEnable" : true,
    "depositEnable" : true,
    "depositAddress" : null,
    "decimals" : 8,
    "withdrawMin" : null,
    "withdrawFee" : "0.00000000",
    "minConfirm" : 0
  } ],
  "supportCollateral" : true,
  "supportBorrow" : true
}

/v2/currencies/{currency} : get data for a supported currency

Request Parameter Data Type Required Description
currency String true currency name

The response field and currency fields are the same as those of /v2/currencies

System Timestamp

GET https://api.poloniex.com/timestamp

/timestamp

Get current server time.

Example output:

{
    "serverTime": 1649671195385
}

Market Data

Prices

GET https://api.poloniex.com/markets/price 

or

GET https://api.poloniex.com/markets/{symbol}/price

/markets/price

/markets/{symbol}/price

Example output:

[
  {
    "symbol": "TRX_USDC",
    "price": "0.06023436",
    "time": 1648823320095,
    "dailyChange": "0.0113",
    "ts": 1649022802046
  },
  {
    "symbol": "ELON_USDC",
    "price": "0.0000007",
    "time": 1648509468464,
    "dailyChange": "-0.002",
    "ts": 1649022801990
  }
  ...
]

/markets/price : Get latest trade price for all symbols.

Response Field Data Type Description
symbol String symbol name
price String current price
time Long time the record was created
dailyChange String daily change in decimal
ts Long time the record was pushed
GET https://api.poloniex.com/markets/{symbol}/price

Example output:

{
  "symbol": "BTC_USDT",
  "price": "38597.32",
  "time": 1648866396349,
  "dailyChange": "0.0102",
  "ts": 1649052548178
}

/markets/{symbol}/price : Get latest trade price for a symbol.

Request Parameter Data Type Required Description
symbol String true symbol name

Response fields are the same as /markets/price

Mark Price

GET https://api.poloniex.com/markets/markPrice 

or

GET https://api.poloniex.com/markets/{symbol}/markPrice

/markets/markPrice

/markets/{symbol}/markPrice

Example output:

[
  {
    "symbol": "BTC_USDT",
    "markPrice": "17580.34",
    "time": 1648823320095
  },
  {
    "symbol": "ETH_USDT",
    "markPrice": "1205.64",
    "time": 1648509468464
  }
  ...
]

/markets/price : Get latest mark price for all cross margin symbols.

Response Field Data Type Description
symbol String symbol name
markPrice String current mark price
time Long time the record was created
GET https://api.poloniex.com/markets/{symbol}/markPrice

Example output:

{
  "symbol": "BTC_USDT",
  "markPrice": "17580.34",
  "time": 1648823320095
}

/markets/{symbol}/price : Get latest mark price for a single cross margin symbol.

Request Parameter Data Type Required Description
symbol String true symbol name

Response fields are the same as /markets/markPrice

Mark Price Components

GET https://api.poloniex.com/markets/{symbol}/markPriceComponents

/markets/{symbol}/markPriceComponents

Example output:

{
  "markPrice": "17735.41",
  "symbol": "BTC_USDT",
  "ts": 1630985335599,
  "components": [
    {
      "symbol": "BTC_USDT",
      "symbolPrice": "17733.25",
      "weight": "0.250",
      "convertPrice": "17733.25",
      "exchange": "OKEx"
    },
    {
      "symbol": "BTC_USDT",
      "symbolPrice": "17739.87",
      "weight": "0.750",
      "convertPrice": "17739.87",
      "exchange": "Binance"
    }
  ]
}

Get components of the mark price for a given symbol

Response Field Data Type Description
markPrice String mark price of the symbol
symbol String symbol name
ts Long timestamp
components Array of Json price and weight info for the symbol from various exchanges

Components

Response Field Data Type Description
symbol String symbol name
symbolPrice String symbol price
weight String weight assigned to the exchange price
convertPrice String symbol price converted to index
exchange String name of exchange

Order Book

GET https://api.poloniex.com/markets/{symbol}/orderBook?scale={scale}&limit={limit}

/markets/{symbol}/orderBook

Example output:

{
  "time": 1648708448871,
  "scale": "1",
  "asks": [
    "1.91",
    "47.17277487"
  ],
  "bids": [
    "1.9",
    "110",
    "1.889",
    "10"
  ],
  "ts": 1648708448873
}

Get the order book for a given symbol. Scale and limit values are optional.
For valid scale values, please refer to the scale values defined for each symbol . If scale is not supplied, then no grouping/aggregation will be applied.

Request Parameter Data Type Required Description
symbol String true symbol name
scale String false controls aggregation by price
limit Integer false maximum number of records returned. The default value of limit is 10. Valid limit values are: 5, 10, 20, 50, 100, 150.
Response Field Data Type Description
time Long time the record was created
scale String controls aggregation by price
asks List<String> list of asks
bids List<String> list of bids
ts Long time the record was pushed

Candles

GET https://api.poloniex.com/markets/{symbol}/candles?interval={interval}&limit={limit}&startTime={startTime}&endTime={endTime}

e.g. https://api.poloniex.com/markets/ETH_USDT/candles?interval=MINUTE_5

/markets/{symbol}/candles

Example output:

[
  [
    "1.9",
    "1.9",
    "1.9",
    "1.9",
    "0",
    "0",
    "0",
    "0",
    0,
    1648707601291,
    "1.9",
    "MINUTE_1",
    1648707600000,
    1648707659999
  ],
  [
    ...
  ],
  ...
]

Returns OHLC for a symbol at given timeframe (interval).

Request Parameter Data Type Required Description
symbol String true symbol name
interval String true the unit of time to aggregate data by. Valid values: MINUTE_1, MINUTE_5, MINUTE_10, MINUTE_15, MINUTE_30, HOUR_1, HOUR_2, HOUR_4, HOUR_6, HOUR_12, DAY_1, DAY_3, WEEK_1 and MONTH_1
limit Integer false maximum number of records returned. The default value is 100 and the max value is 500.
startTime Long false filters by time. The default value is 0.
endTime Long false filters by time. The default value is current time

The response is a list of candles data values displayed in an array in the following order:

Data Field Data Type Description
low String lowest price over the interval
high String highest price over the interval
open String price at the start time
close String price at the end time
amount String quote units traded over the interval
quantity String base units traded over the interval
buyTakerAmount String quote units traded over the interval filled by market buy orders
buyTakerQuantity String base units traded over the interval filled by market buy orders
tradeCount Integer count of trades
ts Long time the record was pushed
weightedAverage String weighted average over the interval
interval String the selected interval
startTime Long start time of interval
closeTime Long close time of interval

Trades

GET https://api.poloniex.com/markets/{symbol}/trades?limit={limit}

/markets/{symbol}/trades

Example output:

[
  {
    "id": "194",
    "price": "1.9",
    "quantity": "110",
    "amount": "209.00",
    "takerSide": "SELL",
    "ts": 1648690080545,
    "createTime": 1648634905695
  }
]

Returns a list of recent trades, request param limit is optional, its default value is 500, and max value is 1000.

Request Parameter Data Type Required Description
symbol String true symbol name
limit Integer false maximum number of records returned
Response Field Data Type Description
id String trade id
price String trade price
quantity String base units traded
amount String quote units traded
takerSide String taker's trade side (BUY, SELL)
ts Long time the trade was pushed
createTime Long time the trade was created

Ticker

GET https://api.poloniex.com/markets/ticker24h

or

GET https://api.poloniex.com/markets/{symbol}/ticker24h

/markets/ticker24h

/markets/{symbol}/ticker24h

Example output:

[
  {
    "symbol": "BTC_USDT",
    "open": "30338.34",
    "low": "30308.14",
    "high": "32338.91",
    "close": "30938.56",
    "quantity": "0.1",
    "amount": "0",
    "tradeCount": 1,
    "startTime": 1648995780000,
    "closeTime": 1649082121008,
    "displayName": "BTC/USDT",
    "dailyChange": "0.0198",
    "bid": "30338.34",
    "bidQuantity": "0.01",
    "ask": "30338.35",
    "askQuantity": "0.01",
    "ts": 1649082180190,
    "markPrice": "30938.57"
  },
  {
    "symbol": "ETH_USDT",
    "open": "1817.69",
    "low": "1723.50",
    "high": "1897.12",
    "close": "1723.50",
    "quantity": "2",
    "amount": "0",
    "tradeCount": 5,
    "startTime": 1648995780000,
    "closeTime": 1649082121009,
    "displayName": "ETH/USDT",
    "dailyChange": "-0.0052",
    "bid": "1817.70",
    "bidQuantity": "0.01",
    "ask": "1817.71",
    "askQuantity": "0.01",
    "ts": 1649082180190,
    "markPrice": "1723.51"
  }
]

Retrieve ticker in last 24 hours for all symbols.

Response Field Data Type Description
symbol String symbol name
open String price at the start time
low String lowest price over the last 24h
high String highest price over the last 24h
close String price at the end time
quantity String base units traded over the last 24h
amount String quote units traded over the last 24h
tradeCount Integer count of trades
startTime Long start time for the 24h interval
closeTime Long close time for the 24h interval
displayName String symbol display name
dailyChange String daily change in decimal
bid String Best bid price
bidQuantity String Best bid quantity
ask String Best ask price
askQuantity String Best ask quantity
ts Long time the record was pushed
markPrice String current mark price

Example output:

{
  "symbol": "BTC_USDT",
  "open": "30338.34",
  "low": "30308.14",
  "high": "32338.91",
  "close": "30938.56",
  "quantity": "0.1",
  "amount": "0",
  "tradeCount": 1,
  "startTime": 1648995360000,
  "closeTime": 1649081701009,
  "displayName": "BTC/USDT",
  "dailyChange": "0.0198",
  "bid": "30338.34",
  "bidQuantity": "0.01",
  "ask": "30338.35",
  "askQuantity": "0.01",
  "ts": 1649081760190,
  "markPrice": "30938.57"
}

Retrieve ticker in last 24 hours for a given symbol.

Request Parameter Data Type Required Description
symbol String true symbol name

Response fields are the same as /markets/ticker24h

Margin

Collateral Info

GET https://api.poloniex.com/markets/collateralInfo

or

GET https://api.poloniex.com/markets/{currency}/collateralInfo

/markets/collateralInfo

/markets/{currency}/collateralInfo

Example output:

[
  {
     "currency": "BTC",
     "collateralRate": "0.95",
     "initialMarginRate": "0.50",
     "maintenanceMarginRate": "0.10"
  },
  {
     "currency": "ETH",
     "collateralRate": "0.95",
     "initialMarginRate": "0.55",
     "maintenanceMarginRate": "0.11"
  },
  ...
]

markets/collateralInfo : Get collateral information for all currencies.

Response Field Data Type Description
currency String currency name
collateralRate String collateral rate of the currency in cross margin
initialMarginRate String initial margin rate of this currency
maintenanceMarginRate String maintenance margin rate of this currency
GET https://api.poloniex.com/markets/{currency}/collateralInfo

Example output:

{
   "currency": "BTC",
   "collateralRate": "0.95",
   "initialMarginRate": "0.50",
   "maintenanceMarginRate": "0.10"
}

/markets/{currency}/collateralInfo : Get collateral information for a single currency.

Request Parameter Data Type Required Description
currency String true currency name

Response fields are the same as /markets/collateralInfo

Borrow Rates Info

GET https://api.poloniex.com/markets/borrowRatesInfo

/markets/borrowRatesInfo

Example output:

[
  {
    "tier": "TIER1",
    "rates": [ 
      {
        "currency": "BTC",
        "dailyBorrowRate": "1",
        "hourlyBorrowRate": "0.04166",
        "borrowLimit": "10"
      },
      {
        "currency": "ETH",
        "dailyBorrowRate": "1",
        "hourlyBorrowRate": "0.04166",
        "borrowLimit": "100"
      }
    ]
  },
  {
    "tier": "TIER2",
    "rates": [ 
      {
        "currency": "BTC",
        "dailyBorrowRate": "0.95",
        "hourlyBorrowRate": "0.03958",
        "borrowLimit": "11"
      },
      {
        "currency": "ETH",
        "dailyBorrowRate": "1",
        "hourlyBorrowRate": "0.03958",
        "borrowLimit": "110"
      }
    ]
  }
  ...
]

markets/borrowRatesInfo : Get borrow rates information for all tiers and currencies.

Response Field Data Type Description
tier String tier for borrow rates
rates Array of Json borrow rates per currency

rates field

Response Field Data Type Description
currency String currency name
dailyBorrowRate String borrow rate per day
hourlyBorrowRate String borrow rate per hour
borrowLimit String borrow limit amount for the currency

Authenticated Endpoints

The private HTTP API allows read / write access to your private account.

Accounts

Account Information

GET https://api.poloniex.com/accounts

/accounts

Example output:

[
  {
    "accountId": "123",
    "accountType": "SPOT",
    "accountState": "NORMAL"
  }
]

Get a list of all accounts of a user.

Response Field Data Type Description
accountId String account ID
accountType String account type. Currently only SPOT is supported
accountState String account's state, e.g. NORMAL, LOCKED

All Account Balances

GET https://api.poloniex.com/accounts/balances?accountType={accountType}

or

GET https://api.poloniex.com/accounts/{id}/balances

/accounts/balances

/accounts/{id}/balances

Example output:

[
  {
    "accountId": "123",
    "accountType": "SPOT",
    "balances": [
      {
        "currencyId": "60001",
        "currency": "TRX",
        "available": "93640.421767943475",
        "hold": "19.84382885"
      },
      {
        "currencyId": "60002",
        "currency": "ELON",
        "available": "100037.9449",
        "hold": "0.00"
      },
      {
        "currencyId": "60003",
        "currency": "USDC",
        "available": "78086.768609427831705",
        "hold": "22577.045"
      }
    ]
  }
]

/accounts/balances : get a list of all accounts of a user with each account’s id, type and balances (assets).

Request Parameter Data Type Required Description
accountType String false The account type. e.g. SPOT. Default will show all account types if not specified. Currently only SPOT is supported
Response Field Data Type Description
accountId String account ID
accountType String account type. Currently, SPOT is the only supported one.
balances Json account's assets
Balances Field Data Type Description
currencyId String currency id
currency String currency name
available String available amount for the currency. can be negative due to margin
hold String frozen amount for the currency

/accounts/{id}/balances : get the full details for a single account with its balances: free (available) and locked (hold) for each currency.

Request Parameter Data Type Required Description
id Long true account id, data from /accounts

Response fields and balances fields are the same as those of /accounts/balances .

Account Activity

GET https://api.poloniex.com/accounts/activity?activityType={activityType}&currency={currency}&from={from}&direction={direction}&startTime={startTime}&endTime={endTime}&limit={limit}

/accounts/activity

Example output:

[
    {
        "id": "22774050",
        "currency": "LINK",
        "amount": "100000000",
        "state": "SUCCESS",
        "createTime": 1659781580499,
        "description": "Your airdrop for 100000000 LINK",
        "activityType": 200
    },
    {
        "id": "22774049",
        "currency": "ADA",
        "amount": "100000000",
        "state": "SUCCESS",
        "createTime": 1659781579899,
        "description": "Your airdrop for 100000000 ADA",
        "activityType": 200
    }
]

Get a list of activities such as airdrop, rebates, staking, credit/debit adjustments, and other (historical adjustments).

Request Parameter Data Type Required Description
startTime Long false (milliseconds since UNIX epoch) trades filled before startTime will not be retrieved.
endTime Long false (milliseconds since UNIX epoch) trades filled after endTime will not be retrieved.
activityType Integer false Type of activity: ALL: 200, AIRDROP: 201, COMMISSION_REBATE: 202, STAKING: 203, REFERAL_REBATE: 204, CREDIT_ADJUSTMENT: 104, DEBIT_ADJUSTMENT: 105, OTHER: 199
limit Integer false The max number of records could be returned. Default is 100 and max is 1000.
from Long false It is 'id'. The query begin at ‘from', and the default is 0.
direction String false PRE, NEXT, default is NEXT
currency String false The transferred currency, like USDT. Default is for all currencies, if not specified.
Response Field Data Type Description
id String activity id
currency String currency like BTC, ETH etc
amount String amount of the activity (can be negative)
state String state of the activity e.g. SUCCESS, PROCESSSING, FAILED
createTime Long datetime of the activity
description String activity details
activityType Integer type of activity

Accounts Transfer

POST https://api.poloniex.com/accounts/transfer

/accounts/transfer

Example request: json { "currency": "USDT", "amount": "10.5", "fromAccount": "SPOT", "toAccount": "FUTURES" } Example output:

{
  "transferId": "2977"
}

Transfer amount of currency from an account to another account for a user.

Request Parameter Data Type Required Description
currency String true The currency to transfer, like USDT
amount String true The amount to transfer.
fromAccount String true The account, from which the currency is transferred.
toAccount String true The account, to which the currency is transferred.
Response Field Data Type Description
transferId String transfer ID

Accounts Transfer Records

GET https://api.poloniex.com/accounts/transfer?limit={limit}&from={from}&direction={direction}&currrency={currency}&startTime={startTime}&endTime={endTime}

or

GET https://api.poloniex.com/accounts/transfer/{id}

/accounts/transfer

/accounts/transfer/{id}

Example output of /accounts/transfer:

[
  {
    "id": "23365",
    "fromAccount": "SPOT",
    "toAccount": "FUTURES",
    "currency": "USDT",
    "amount": "0.01",
    "state": "SUCCESS",
    "createTime": 1656000618690
  },
  {
    "id": "532",
    "fromAccount": "SPOT",
    "toAccount": "FUTURES",
    "currency": "USDT",
    "amount": "1.2",
    "state": "SUCCESS",
    "createTime": 1650843791635
  },
  {
    "id": "147",
    "fromAccount": "FUTURES",
    "toAccount": "SPOT",
    "currency": "ETH",
    "amount": "2.05",
    "state": "SUCCESS",
    "createTime": 1650465162165
  }
]

Get a list of transfer records of a user. Max interval for start and end time is 6 months. If no start/end time params are specified then records for last 7 days will be returned.

Request Parameter Data Type Required Description
limit Integer false The max number of records could be returned. Default is 100 and max is 1000 records.
from Long false it is 'transferId'. The query begin at ‘from', and the default is 0.
direction String false PRE, NEXT, default is NEXT
currency String false The transferred currency, like USDT. Default is for all currencies, if not specified.
startTime Long false (milliseconds since UNIX epoch) transfers before start time will not be retrieved.
endTime Long false (milliseconds since UNIX epoch) transfers after end time will not be retrieved.
Response Field Data Type Description
id String transfer ID
fromAccount String the account, from which the currency is transferred.
toAccount String the account, to which the currency is transferred.
currency String the transferred currency
amount String the transferred amount
state String the state of transfer operation. e.g. SUCCESS, PROCESSSING, FAILED
createTime Long the datetime of transfer operation

Example output of /accounts/transfer/{id}:

{
  "id": "46170",
  "fromAccount": "SPOT",
  "toAccount": "FUTURES",
  "currency": "USDT",
  "amount": "0.01",
  "state": "SUCCESS",
  "createTime": 1657112840949
}

Get a single transfer record corresponding to the transferId.

Request Parameter Data Type Required Description
id Long true transfer ID

Response fields are the same as those of /accounts/transfer

Fee Info

GET https://api.poloniex.com/feeinfo

/feeinfo

Example output:

{
    "trxDiscount": true,
    "makerRate":  "0.000234",
    "takerRate":    "0.000189",
    "volume30D": "0.0000550",
    "specialFeeRates": [
      {
       "symbol": "USDD_USDT",
       "makerRate": "0.00",
       "takerRate": "0.00"
      },
      {
       "symbol": "LSK_BTC",
       "makerRate": "0.02",
       "takerRate": "0.01"
      }
    ]
}

Get fee rate for an account

Response Field Data Type Description
trxDiscount Boolean Discount exists if using TRX
makerRate String Maker rate
takerRate String Taker rate
volume30D String 30 days volume in USDT
specialFeeRates Json Array Custom fee rates for symbols

specialFeeRates

Response Field Data Type Description
symbol String symbol name
makerRate String Maker rate
takerRate String Taker rate

Subaccounts

These endpoints are functional for users who participate in subaccounts feature.

Subaccount Information

GET https://api.poloniex.com/subaccounts

/subaccounts

Example output:

[
 {
    "accountId":  "32b323201-e832-2270-78t4-e25ak408945",
    "accountName": "primary Acct",
    "accountState": "ACTIVE",
    "isPrimary":  "true"
 },
 {
    "accountId":  "23422vdd1-e832-2270-78t4-2342cl2292",
    "accountName": "sub1",
    "accountState": "ACTIVE",
    "isPrimary":  "false"
 },
 {
    "accountId":  "56322vdd1-e832-2270-jh45-2342cl6789",
    "accountName": "sub2",
    "accountState": "ACTIVE",
    "isPrimary":  "false"
 }
]

Get a list of all the accounts within an Account Group for a user.

Response Field Data Type Description
accountId String external account ID
accountName String name of the account
accountState String account's state
isPrimary String true if account is primary; false if a subaccount

Subaccount Balances

GET https://api.poloniex.com/subaccounts/balances
or
GET https://api.poloniex.com/subaccounts/{id}/balances

/subaccounts/balances

/subaccounts/{id}/balances

Example output:

[
    {
        "accountId": "32b323201-e832-2270-78t4-e25ak408945",
        "accountName": "primary Acct",
        "accountType": "SPOT",
        "isPrimary": "true",
        "balances": [
            {
                "currency": "USDT",
                "available": "100000233",
                "hold": "0",
                "maxAvailable": "100000233"
            },
            {
                "currency": "LTC",
                "available": "999899455.8625",
                "hold": "0",
                "maxAvailable": "999899455.8625"
            }
        ]
    },
    {
        "accountId": "23422vdd1-e832-2270-78t4-2342cl2292",
        "accountName": "sub1",
        "accountType": "SPOT",
        "isPrimary": "false",
        "balances": [
            {
                "currency": "USDT",
                "available": "500",
                "hold": "0",
                "maxAvailable": "500"
            },
            {
                "currency": "TRX",
                "available": "9991.234",
                "hold": "0",
                "maxAvailable": "9991.234"
            }
        ]
    },
    {
        "accountId": "56322vdd1-e832-2270-jh45-2342cl6789",
        "accountName": "sub2",
        "accountType": "SPOT",
        "isPrimary": "false",
        "balances": [
            {
                "currency": "BTC",
                "available": "20000.234",
                "hold": "0",
                "maxAvailable": "20000.234"
            },
            {
                "currency": "TRX",
                "available": "12991.234",
                "hold": "0",
                "maxAvailable": "129991.234"
            }
        ]
    },
    {
        "accountId": "32b323201-e832-2270-78t4-e25ak408945",
        "accountName": "string",
        "accountType": "FUTURES",
        "isPrimary": "true",
        "balances": [
            {
                "currency": "USDT",
                "accountEquity": "200017",
                "unrealisedPNL": "0",
                "marginBalance": "200017",
                "positionMargin": "0",
                "orderMargin": "0",
                "frozenFunds": "0",
                "availableBalance": "200017",
                "pnl": "0.0"
            }
        ]
    },
    {
        "accountId": "23422vdd1-e832-2270-78t4-2342cl2292",
        "accountName": "sub1",
        "accountType": "FUTURES",
        "isPrimary": "false",
        "balances": [
            {
                "currency": "USDT",
                "accountEquity": "100",
                "unrealisedPNL": "0",
                "marginBalance": "100",
                "positionMargin": "0",
                "orderMargin": "0",
                "frozenFunds": "0",
                "availableBalance": "100",
                "pnl": "0.0"
            }
        ]
    }
]

/subaccounts/balances : Get balances information by currency and account type (SPOT and FUTURES) for each account in the account group. This is only functional for a primary user. A subaccount user can call /accounts/balances for SPOT account type and the futures API overview for its FUTURES balances.

Response Field Data Type Description
accountId String external account ID
accountName String name of the account
accountType String currently SPOT or FUTURES
isPrimary String true if account is primary; false if a subaccount
balances Json account's assets

balances for SPOT account type

Response Field Data Type Description
currency String currency name
available String available amount for the currency. can be negative due to margin
hold String frozen amount for the currency
maxAvailable String amount of currency that can be transferred

balances for FUTURES account type

Response Field Data Type Description
currency String currency name
accountEquity String equal to margin Balance + unrealised PNL
unrealisedPNL String unrealised profit and loss
marginBalance String equal to positionMargin + orderMargin + frozenFunds + availableBalance
positionMargin String position margin
orderMargin String order margin
frozenFunds String frozen funds
availableBalance String available balance
pnl String realised profit and loss

/subaccounts/{id}/balances : Get balances information by currency and account type (SPOT and FUTURES) for a given external accountId in the account group.

Request Parameter Data Type Required Description
id String true external account ID

Response fields and balances fields are the same as those of /subaccounts/balances

Subaccount Transfer

POST https://api.poloniex.com/subaccounts/transfer

/subaccounts/transfer

Example request:

{ 
   "currency": "USDT",
   "amount": "10",
   "fromAccountId": "32b323201-e832-2270-78t4-e25ak408945",
   "fromAccountType": "SPOT",
   "toAccountId": "23422vdd1-e832-2270-78t4-2342cl2292",
   "toAccountType": "SPOT"
}

Example output:

{
  "transferId": "228535117"
}

Example output (if transfer not allowed):

{
    "code": 250020,
    "message": "No permission"
}

Transfer amount of currency from an account and account type to another account and account type among the accounts in the account group. Primary account can transfer to and from any subaccounts as well as transfer between 2 subaccounts across account types. Subaccount can only transfer to the primary account across account types.

Request Parameter Data Type Required Description
currency String true The currency to transfer, like USDT
amount String true The amount to transfer
fromAccountId String true external UID of the from account
fromAccountType String true from account type (SPOT or FUTURES)
toAccountId String true external UID of the to account
toAccountType String true to account type (SPOT or FUTURES)
Response Field Data Type Description
transferId String transfer ID

Subaccount Transfer Records

GET https://api.poloniex.com/subaccounts/transfer?limit={limit}&from={from}&direction={direction}&currrency={currency}&fromAccountId={fromAccountId}&tfromAccountType={fromAccountType}&toAccountId={toAccountId}&toAccountType={toAccountType}&startTime={startTime}&endTime={endTime}
or
GET https://api.poloniex.com/subaccounts/transfer/{id}

/subaccounts/transfer

/subaccounts/transfer/{id}

Example output of /subaccounts/transfer:

[
    {
        "id": "228535117",        
        "fromAccountId": "32b323201-e832-2270-78t4-e25ak408945",
        "fromAccountName": "primary Acct",        
        "fromAccountType": "SPOT",
        "toAccountId": "23422vdd1-e832-2270-78t4-2342cl2292",
        "toAccountName": "sub1",
        "toAccountType": "SPOT",
        "currency": "USDT",
        "amount": "111",
        "state": "SUCCESS"
        "createTime": 1670980921113
    },
    {
        "id": "1328535117",        
        "fromAccountId": "32b323201-e832-2270-78t4-e25ak408945",
        "fromAccountName": "primary Acct",        
        "fromAccountType": "SPOT",
        "toAccountId": "23422vdd1-e832-2270-78t4-2342cl2292",
        "toAccountName": "sub2",
        "toAccountType": "FUTURES",
        "currency": "USDT",
        "amount": "111",
        "state": "SUCCESS"
        "createTime": 1670980921113
    }
]

Get a list of transfer records of a user. Max interval for start and end time is 6 months. If no start/end time params are specified then records for last 7 days will be returned.

Request Parameter Data Type Required Description
limit Integer false The max number of records could be returned. Default is 100 and max is 1000 records.
from Long false it is 'transferId'. The query begin at ‘from', and the default is 0.
direction String false PRE, NEXT, default is NEXT
currency String false The transferred currency, like USDT. Default is for all currencies, if not specified.
fromAccountId String false external UID of the from account
fromAccountType String false from account type (SPOT or FUTURES)
toAccountId String false external UID of the to account
toAccountType String false to account type (SPOT or FUTURES)
startTime Long false (milliseconds since UNIX epoch) transfers before start time will not be retrieved.
endTime Long false (milliseconds since UNIX epoch) transfers after end time will not be retrieved.
Response Field Data Type Description
id String transfer ID
fromAccountId String external UID of the from account
fromAccountName String name of the from account
fromAccountType String from account type (SPOT or FUTURES)
toAccountId String external UID of the to account
toAccountType String to account type (SPOT or FUTURES)
toAccountName String name of the from account
currency String the transferred currency
amount String the transferred amount
state String the state of transfer operation e.g. SUCCESS, PROCESSSING, FAILED
createTime Long the datetime of transfer operation

/subaccounts/transfer/{id} : Get a single transfer record corresponding to the transferId

Request Parameter Data Type Required Description
id String true transfer ID

Response fields are the same as those of /subaccounts/transfer

Wallets

Deposit Addresses

GET https://api.poloniex.com/wallets/addresses?currency={currency}

/wallets/addresses

Example output:

{
  "AAVE": "0xae8d0d7c520daebb1580dabaa91f3ccf8ae492f5",
  "AMP": "0xae8d0d7c520daebb1580dabaa91f3ccf8ae492f5",
  "ATOM": "cosmos18clcz526q274gdvmjv820f45pua03rhn4xplkz",
  "XLMBEAR": "0xae8d0d7c520daebb1580dabaa91f3ccf8ae492f5",
  "XLMBULL": "0xae8d0d7c520daebb1580dabaa91f3ccf8ae492f5",
  "XYM": "bqz8hDK2mm"
}

Get all deposit addresses for a user.

Some currencies use a common deposit address for everyone on the exchange and designate the account for which this payment is destined by populating paymentID field. In these cases, use /currencies to look up the mainAccount for the currency to find the deposit address and use the address returned here as the paymentID. Note: currencies will only include a mainAccount property for currencies which require a paymentID.

Request Parameter Data Type Required Description
currency String false the currency to display for the deposit address. If not specified, the deposit address of all currencies will be displayed.
Response Field Data Type Description
currency String the deposit address for the currency

Wallets Activity Records

GET https://api.poloniex.com/wallets/activity?start={start}&end={end}&activityType={activityType}

/wallets/activity

Example output:

{ 
  "deposits":
    [ 
      { 
        "depositNumber": 7397520,
        "currency": "BTC",
        "address": "131rdg5Rzn6BFufnnQaHhVa5ZtRU1J2EZR",
        "amount": "0.06830697",
        "confirmations": 1,
        "txid": "3a4b9b2404f6e6fb556c3e1d46a9752f5e70a93ac1718605c992b80aacd8bd1d",
        "timestamp": 1506005439,
        "status": "COMPLETED"
      }, 
      { 
        "depositNumber": 7397521,
        "currency": "BCH",
        "address": "1FhCkdKeMGa621mCpAtFYzeVfUBnHbooLj",
        "amount": "10.00000000",
        "confirmations": 5,
        "txid": "eb2e0914105b02fbe6e17913d74b4e5950c1ba122eb71afdfc49e2c58b272456",
        "timestamp": 1508436102,
        "status": "COMPLETED"
      },
      { 
        "depositNumber": 7397518,
        "currency": "ETH",
        "address": "0xb7e033598cb94ef5a35349316d3a2e4f95f308da",
        "amount": "29.99825341",
        "confirmations": 53,
        "txid": "f7e7eeb44edcad14c0f90a5fffb1cbb4b80e8f9652124a0838f6906ca939ccd2",
        "timestamp": 1537305507,
        "status": "COMPLETED"
      } 
    ],
  "withdrawals":
    [ 
      { 
        "withdrawalRequestsId": 7397527,
        "currency": "ETC",
        "address": "0x26419a62055af459d2cd69bb7392f5100b75e304",
        "amount": "13.19951600",
        "fee": "0.01000000",
        "timestamp": 1506010932,
        "status": "COMPLETED",
        "txid": "343346392f82ac16e8c2604f2a604b7b2382d0e9d8030f673821f8de4b5f5bk",
        "ipAddress": "1.2.3.4",
        "paymentID": null
      },
      { 
        "withdrawalRequestsId": 7704882,
        "currency": "ETH",
        "address": "0x00c90335F92FfcD26C8c915c79d7aB424454B7c7",
        "amount": "0.01318826",
        "fee": "0.00500000",
        "timestamp": 1507908127,
        "status": "COMPLETED",
        "txid": "423346392f82ac16e8c2604f2a604b7b2382d0e9d8030f673821f8de4b5f5a30",
        "ipAddress": "1.2.3.4",
        "paymentID": null
      }
    ]
}

Get deposit and withdrawal activity history within a range window for a user

Request Parameter Data Type Required Description
start Long true the start UNIX timestamp of activities
end Long true the end UNIX timestamp of activities
activityType String false The type of activity: deposits and withdrawals. If no activity type is specified, activities of all types will be returned.
Response Field Data Type Description
deposits Json object list of deposits activities
withdrawals Json object list of withdrawals activities
deposits Field Data Type Description
depositNumber Long the unique deposit ID for this deposit
currency String the currency of this deposit
address String the address to which this deposit was sent
amount String the total value of the deposit (network fees will not be included in this)
confirmations Integer the total number of confirmations for this deposit
txid String the blockchain transaction ID of this deposit
timestamp Long the UNIX timestamp when this deposit was first noticed
status String the current status of this deposit (either PENDING or COMPLETED)
withdrawals Field Data Type Description
withdrawalRequestsId Long the unique ID for this withdrawal
currency String the currency of this withdrawal
address String the address to which the withdrawal was made
amount String the total amount withdrawn including the fee
fee String the fee paid to the exchange for this withdrawal
timestamp Long the Unix timestamp of the withdrawal
status String the status of the withdrawal (one of PROCESSING, AWAITING APPROVAL, COMPLETED or COMPLETE ERROR)
txid String the blockchain transaction ID of this withdrawal
ipAddress String the IP address which initiated the withdrawal request
paymentID String the paymentID specified for this withdrawal. If none were specified, the field will be null

New Currency Address

POST https://api.poloniex.com/wallets/address

/wallets/address

Example request:

{
    "currency": "TRX"
}

Example output:

{
    "address": "0xae8d0d7c520daebb1580dabaa91f3ccf8ae492f5"
}

Create a new address for a currency.

Some currencies use a common deposit address for everyone on the exchange and designate the account for which this payment is destined by populating paymentID field. In these cases, use /currencies to look up the mainAccount for the currency to find the deposit address and use the address returned here as the paymentID. Note: currencies will only include a mainAccount property for currencies which require a paymentID.

Request Parameter Data Type Required Description
currency String true the currency to use for the deposit address
Response Field Data Type Description
address String the newly created address

Withdraw Currency

POST https://api.poloniex.com/wallets/withdraw

/wallets/withdraw

Example request:

{
    "currency": "ETH",
    "amount": "1.50",
    "address": "0xbb8d0d7c346daecc2380dabaa91f3ccf8ae232fb4"
}

Example output:

{
    "withdrawalRequestsId": 33485231
}

Immediately places a withdrawal for a given currency, with no email confirmation. In order to use this method, withdrawal privilege must be enabled for your API key.

Some currencies use a common deposit address for everyone on the exchange and designate the account for which this payment is destined by populating paymentID field. In these cases, use /currencies to look up the mainAccount for the currency to find the deposit address and use the address returned by /wallets/addresses or generate one using /wallets/address as the paymentId. Note: currencies will only include a mainAccount property for currencies which require a paymentID.

For currencies where there are multiple networks to choose from (like USDT or BTC), you can specify the chain by setting the "currency" parameter to be a multiChain currency name, like USDTTRON, USDTETH, or BTCTRON. You can get information on these currencies, like fees or if they"re disabled, by adding the "includeMultiChainCurrencies" optional parameter to the /currencies endpoint.

Request Parameter Data Type Required Description
currency String true currency name.
amount String true withdrawal amount.
address String true withdrawal address.
paymentId String false paymentId for currencies that use a command deposit address.
allowBorrow Boolean false allow to transfer borrowed funds (Default: false)
Response Field Data Type Description
withdrawalRequestsId Long the withdrawal reference ID

Margin

Account Margin

GET https://api.poloniex.com/margin/accountMargin?accountType={accountType}

/margin/accountMargin

Example output:

{
    "totalAccountValue": "24121.5",
    "totalMargin": "21421.5",
    "usedMargin": "2323.32",
    "freeMargin": "2323.32",
    "maintenanceMargin": "1231.4",
    "marginRatio": "1739.61%",
    "time": 1668542860395
}

Get account margin information

Request Parameter Data Type Required Description
accountType String true The account type. Currently only SPOT is supported
Response Field Data Type Description
totalAccountValue String the sum of the usd value of all balances plus unrealized pnl, including the value of non-collateral holdings
totalMargin String collateral that can be used for margin
usedMargin String amount of margin that has been used; cannot open new positions if total margin falls below this value
freeMargin String available free margin
maintenanceMargin String minimum amount needed to keep account in good standing; enters liquidation mode if total margin falls below this value
marginRatio String is calculated as total margin / maintenance Margin; account enters liquidation mode if this value < 100%
time Long time the record was created

Borrow Status

GET https://api.poloniex.com/margin/borrowStatus?currency={currency}

/margin/borrowStatus

Example output:

[
  {
    "currency": "BTC",
    "available": "0.0",
    "borrowed": "-10.0",
    "hold": "0.0",
    "maxAvailable": "20.0",
    "hourlyBorrowRate": "0.000045",
    "version": "111"
  },
  {
    "currency": "ETH",
    "available": "100",
    "borrowed": "0.0",
    "hold": "0.0",
    "maxAvailable": "200",
    "hourlyBorrowRate": "0.000045",
    "version": "122"
  }
]

Get borrow status of currencies

Request Parameter Data Type Required Description
currency String false currency name
Response Field Data Type Description
currency String currency name
available String amount of available currency
borrowed String borrowed amount
hold String frozen amount
maxAvailable String amount that can be withdrawn, including what's borrowable with margin
hourlyBorrowRate String borrow rate per hour
version String current version of the currency

Maximum Buy/Sell Amount

GET https://api.poloniex.com/margin/maxSize?symbol={symbol}

/margin/maxSize

Example output:

{
    "symbol": "BTC_USDT",
    "maxLeverage": 3,
    "availableBuy": "10000.0",
    "maxAvailableBuy": "10000.0",
    "availableSell": "1.0",
    "maxAvailableSell": "2.0",
}

Get maximum and available buy/sell amount for a given symbol.

Request Parameter Data Type Required Description
symbol String true symbol name
Response Field Data Type Description
symbol String symbol name
maxLeverage Integer max leverage for the symbol
availableBuy String available amount for the quote currency that can be bought
maxAvailableBuy String maximum amount in quote currency that can be bought including margin
availableSell String available amount for the base currency that can be sold
maxAvailableSell String maximum amount in base currency that can be sold including margin

Orders

Create Order

POST https://api.poloniex.com/orders

/orders

Example request 1 (Limit Buy 100 BTC_USDT at 40,000.50):

{
    "symbol": "BTC_USDT",  
    "type": "LIMIT",
    "quantity": "100",
    "side": "BUY",
    "price": "40000.50000",
    "timeInForce": "IOC",
    "clientOrderId": "1234Abc"
}

Example output:

{
  "id": "29772698821328896",
  "clientOrderId": "1234Abc"
}

Example request 2 (Market Buy 100 BTC_USDT):

{
    "symbol": "BTC_USDT",
    "amount": "100",
    "side": "BUY"
}

Example output:

{
  "id": "2977269882132774",
  "clientOrderId": ""
}

Create an order for an account.

Request Parameter Data Type Required Description
symbol String true The symbol to trade, like BTC_USDT
side String true BUY, SELL
timeInForce String false GTC, IOC, FOK (Default: GTC)
type String false MARKET, LIMIT, LIMIT_MAKER (for placing post only orders). Default type is MARKET.
accountType String false SPOT is the default and only supported one.
price String false Price is required for non-market orders
quantity String false Base units for the order. Quantity is required for MARKET SELL or any LIMIT orders
amount String false Quote units for the order. Amount is required for MARKET BUY order
clientOrderId String false Maximum 64-character length.*
allowBorrow Boolean false allow order to be placed by borrowing funds (Default: false)
stpMode String false self-trade prevention. Defaults to EXPIRE_TAKER. None: enable self-trade; EXPIRE_TAKER: Taker order will be canceled when self-trade happens

The following characters are not allowed as part of clientOrderId: $;&@#`|~<>^!{}?[]

Response Field Data Type Description
id String order id
clientOrderId String clientOrderId user specifies in request or an empty string.

Create Multiple Orders

POST https://api.poloniex.com/orders/batch

/orders/batch

Example:

[
    {
        "symbol": "BTC_USDT",
        "amount": "100",
        "side": "BUY"
    },
    {
        "symbol": "BTC_USDT",  
        "type": "LIMIT",
        "quantity": "100",
        "side": "BUY",
        "price": "40000.50000",
        "timeInForce": "IOC",
        "clientOrderId": "1234Abc"
    },
    {
        "symbol": "ETH_USDT",
        "amount": "1000",
        "side": "BUY"
    },
    {
        "symbol": "TRX_USDT",  
        "type": "LIMIT",
        "quantity": "15000",
        "side": "SELL",
        "price": "0.0623423423",
        "timeInForce": "IOC",
        "clientOrderId": "456Xyz"
    }
]

Example output:

[
    {
        "id": "2977269882132774",
        "clientOrderId": ""
    },
    {
        "id": "29772698821328896",
        "clientOrderId": "1234Abc"
    },
    {
        "code": 21709,
        "message": "Low available balance",
        "clientOrderId": ""
    },
    {
        "code": 21312,
        "message": "Client order id repeat",
        "clientOrderId": "456Xyz"
    }
]

Create multiple orders via a single request. Max limit of 20 orders. Request parameter is an array of json objects with order details.

Request Parameter Data Type Required Description
symbol String true The symbol to trade, like BTC_USDT
side String true BUY, SELL
timeInForce String false GTC, IOC, FOK (Default: GTC)
type String false MARKET, LIMIT, LIMIT_MAKER (for placing post only orders). Default type is MARKET.
accountType String false SPOT is the default and only supported one.
price String false Price is required for non-market orders
quantity String false Base units for the order. Quantity is required for MARKET SELL or any LIMIT orders
amount String false Quote units for the order. Amount is required for MARKET BUY order
clientOrderId String false Maximum 64-character length.*

The following characters are not allowed as part of clientOrderId: $;&@#`|~<>^!{}?[]

Array of json objects with results for each order details.

Response Field Data Type Description
id String order id
clientOrderId String clientOrderId user specifies in request or an empty string.

Cancel Replace Order

PUT https://api.poloniex.com/orders/234235233423

or

PUT https://api.poloniex.com/orders/cid:1234Abc

/orders/{id}

Example request 1 (cancel and replace an order's price):

{
    "clientOrderId": "1234Abc"
    "price": "18000"
}

Example output:

{
  "id": "29772698821328896",
  "clientOrderId": "1234Abc"
}

Example request 2 (cancel and replace an order that is already filled):

{
    "clientOrderId": "1234Abc"
    "price": "18000",
    "quantity": "20"
}

Example output:

{
  "code":    21359,
  "message": "Order was already canceled or filled."
}

Cancel an existing active order, new or partially filled, and place a new order on the same symbol with details from existing order unless amended by new parameters. The replacement order can amend price, quantity, amount, type, timeInForce, and allowBorrow fields. Specify the existing order id in the path; if id is a clientOrderId, prefix with cid: e.g. cid:myId-1. The proceedOnFailure flag is intended to specify whether to continue with new order placement in case cancelation of the existing order fails. Please note that since the new order placement does not wait for funds to clear from the existing order cancelation, it is possible that the new order will fail due to low available balance.

Request Parameter Data Type Required Description
clientOrderId String false clientOrderId of the new order*
price String false amended price
quantity String false amended quantity
amount String false amended amount (needed for MARKET buy)
type String false amended type; MARKET, LIMIT, LIMIT_MAKER (for placing post only orders)
timeInForce String false amended timeInForce; GTC, IOC, FOK (Default: GTC)
allowBorrow Boolean false allow order to be placed by borrowing funds (Default: false)
proceedOnFailure String false if set to true then new order will be placed even if cancelation of the existing order fails; if set to false (DEFAULT value) then new order will not be placed if the cancelation of the existing order fails

The following characters are not allowed as part of clientOrderId: $;&@#`|~<>^!{}?[]

Response Field Data Type Description
id String order id of the new order
clientOrderId String clientOrderId of the new order if specified or an empty string

Open Orders

GET https://api.poloniex.com/orders?symbol={symbol}&limit={limit}&side={side}&from={from}&direction={direction}

/orders

Example output:

[
  {
    "id": "24993088082542592",
    "clientOrderId": "",
    "symbol": "ELON_USDC",
    "state": "NEW",
    "accountType": "SPOT",
    "side": "SELL",
    "type": "MARKET",
    "timeInForce": "GTC",
    "quantity": "1.00",
    "price": "0.00",
    "avgPrice": "0.00",
    "amount": "0.00",
    "filledQuantity": "0.00",
    "filledAmount": "0.00",
    "createTime": 1646925216548,
    "updateTime": 1646925216548,
    "orderSource": "API",
    "loan": false,
  }, 
  {
    "id": "21934611974062080",
    "clientOrderId": "123",
    "symbol": "TRX_USDC",
    "state": "NEW",
    "accountType": "SPOT",
    "side": "SELL",
    "type": "LIMIT",
    "timeInForce": "GTC",
    "quantity": "1.00",
    "price": "10.00",
    "avgPrice": "0.00",
    "amount": "0.00",
    "filledQuantity": "0.00",
    "filledAmount": "0.00",
    "createTime": 1646196019020,
    "updateTime": 1646196019020,
    "orderSource": "API",
    "loan": true
  }
]

Get a list of active orders for an account.

Request Parameter Data Type Required Description
symbol String false The symbol to trade,like BTC_USDT. Default is for all symbols if not specified.
side String false BUY, SELL
from Long false it is 'orderId'. The query begin at ‘from', and it is 0 when you first query.
direction String false PRE, NEXT
limit Integer false Max number of records to return. Default is 500. Max value is 2000.
Response Field Data Type Description
id String order id
clientOrderId String user specified id
symbol String The symbol to trade,like BTC_USDT
state String order state: NEW,PARTIALLY_FILLED
accountType String SPOT
side String BUY, SELL
type String MARKET, LIMIT, LIMIT_MAKER
timeInForce String GTC, IOC, FOK
quantity String base units for the order
price String
avgPrice String avgPrice = filledAmount/filledQuantity
amount String quote units for the order
filledQuantity String
filledAmount String
createTime Long
updateTime Long
orderSource String source of the order e.g API, APP, WEB
loan Boolean true if borrowed funds, false otherwise

Order Details

GET https://api.poloniex.com/orders/21934611974062080

or

GET https://api.poloniex.com/orders/cid:123

/orders/{id}

Example output:

{
  "id": "21934611974062080",
  "clientOrderId": "123",
  "symbol": "TRX_USDC",
  "state": "NEW",
  "accountType": "SPOT",
  "side": "SELL",
  "type": "LIMIT",
  "timeInForce": "GTC",
  "quantity": "1.00",
  "price": "10.00",
  "avgPrice": "0.00",
  "amount": "0.00",
  "filledQuantity": "0.00",
  "filledAmount": "0.00",
  "createTime": 1646196019020,
  "updateTime": 1646196019020,
  "orderSource": "API",
  "loan": false,
  "cancelReason": 0,
}

Get an order’s status. Either by specifying orderId or clientOrderId. If id is a clientOrderId, prefix with cid: e.g. cid:myId-1

Request Parameter Data Type Required Description
id String true Either orderId or clientOrderId (prefix with cid: )
Response Field Data Type Description
id String order id
clientOrderId String user specified id
symbol String The symbol to trade, like BTC_USDT
state String NEW, PARTIALLY_FILLED, FILLED, PENDING_CANCEL, PARTIALLY_CANCELED, CANCELED, FAILED
accountType String SPOT
side String BUY, SELL
type String MARKET, LIMIT, LIMIT_MAKER
timeInForce String GTC, IOC, FOK
quantity String base units for the order
price String
avgPrice String avgPrice = filledAmount/filledQuantity
amount String quote units for the order
filledQuantity String
filledAmount String
createTime Long
updateTime Long
orderSource String source of the order e.g API, APP, WEB
loan Boolean true if borrowed funds, false otherwise
cancelReason Integer code specified to provide reason for cancelation if applicable; 0: "Not applicable"; 1: "As requested by user"; 1000-1999: "Due to breach of controls in matching engine; 1004: "Due to self-trade"; 2000: "Due to margin liquidation"; 2001: "Due to margin threshold breach"; 2002: "Due to symbol marked as offline"

Cancel Order by Id

DELETE https://api.poloniex.com/orders/32487004629499904

or

DELETE https://api.poloniex.com/orders/cid:54321

/orders/{id}

Example output:

{
  "orderId": "32487004629499904",
  "clientOrderId": "54321",
  "state": "PENDING_CANCEL",
  "code": 200,
  "message": ""
}

Cancel an active order.

Request Parameter Data Type Required Description
id String true order's id or its clientOrderId (prefix with cid: )
Response Field Data Type Description
orderId String the order id
clientOrderId String clientOrderId of the order.
state String order's state (PENDING_CANCEL)
code Integer response code.
message String response message.

Cancel Multiple Orders by Ids

DELETE https://api.poloniex.com/orders/cancelByIds

/orders/cancelByIds

Example request (body is required, parameters could be optional):

{ 
  "orderIds": ["12345", "67890"],
  "clientOrderIds": ["33344", "myId-1"]
}

Example output:

[
  {
    "orderId": "12345",
    "clientOrderId": "33344",
    "state": "PENDING_CANCEL",
    "code": 200,
    "message":""
  },
  {
    "orderId": "67890",
    "clientOrderId": "myId-1",
    "state": "PENDING_CANCEL",
    "code": 200,
    "message":""
  }
]

Batch cancel one or many active orders in an account by IDs.

Request Parameter Data Type Required Description
orderIds String No, except clientOrderIds is null or empty List of order id
clientOrderIds String No, except orderIds is null or empty List of clientOrderId
Response Field Data Type Description
orderId String the order id
clientOrderId String clientOrderId of the order.
state String order's state (PENDING_CANCEL)
code Integer response code.
message String response message.

Cancel All Orders

DELETE https://api.poloniex.com/orders

/orders

Example request (body is required, but parameters are optional; an empty body implies cancelling all orders):

{
    "symbols": ["BTC_USDT", "ETH_USDT"],  
    "accountTypes": ["SPOT"]
}

Example output:

[{
    "orderId": "111222333444", 
    "clientOrderId": "666666", 
    "state": "PENDING_CANCEL",
    "code": 200,
    "message": "SUCCESS"
  },
  {
    "orderId": "333444555666", 
    "clientOrderId": "777777", 
    "state": "PENDING_CANCEL",
    "code": 200,
    "message": "SUCCESS"
}]

Batch cancel all orders in an account.

Request Parameter Data Type Required Description
symbols String array false If symbols are specified then all orders with those symbols will be canceled. If symbols are not specified or array is empty, it will cancel user's all orders for all symbols.
accountTypes String array false SPOT is the default and only supported one.
Response Field Data Type Description
orderId String the order id
clientOrderId String clientOrderId of the order.
state String order's state (PENDING_CANCEL)
code Integer response code.
message String response message.

Kill Switch

POST https://api.poloniex.com/orders/killSwitch

/orders/killSwitch

Enable kill switch with a timeout of 60 seconds

{
    "timeout": "60"
}

> Example output:

```json
{
  "startTime": "1665456130",
  "cancellationTime": "1665456190"
}

Disable kill switch

{
     "timeout": "-1"
}

Example output:

{
  "startTime": "1665456160",
  "cancellationTime": "0"
}

Set a timer that cancels all regular and smartorders after the timeout has expired. Timeout can be reset by calling this command again with a new timeout value. A timeout value of -1 disables the timer. Timeout is defined in seconds.

Request Parameter Data Type Required Description
timeout String true timer value in seconds; range is -1 and 10 to 600
Response Field Data Type Description
startTime Long time when timer is started (milliseconds since UNIX epoch)
cancellationTime Long time when timer is set to expire which will trigger cancellation (milliseconds since UNIX epoch)

Kill Switch Status

GET https://api.poloniex.com/orders/killSwitchStatus 

/orders/killSwitchStatus

Get staus of kill switch

Example output:

{
  "startTime": "1665456130",
  "cancellationTime": "1665456190"
}

No active kill switch example output:

{
  "code":    25020,
  "message": "No active kill switch"
} 

Get status of kill switch. If there is an active kill switch then the start and cancellation time is returned. If no active kill switch then an error message with code is returned

Response Field Data Type Description
startTime Long time when timer is started (milliseconds since UNIX epoch)
cancellationTime Long time when timer is set to expire which will trigger cancellation (milliseconds since UNIX epoch)

Smart Orders

Create Order

POST https://api.poloniex.com/smartorders  

/smartorders

Example request:

{
    "quantity": "100",
    "side": "BUY",
    "type": "STOP_LIMIT",
    "price": "60100.00"
    "stopPrice": "60000.00",
    "timeInForce": "FOK",
    "clientOrderId": "999999910",
    "symbol": "BTC_USDT"
}

Example output:

{
    "id": "10000009",
    "clientOrderId": "999999910"
}

Create a smart order for an account

Request Parameter Data Type Required Description
symbol String true Only supported one.
side String true BUY, SELL
timeInForce String false FOK, IOC, GTC (Default: GTC)
type String false STOP, STOP_LIMIT (Default: STOP if price not specified or STOP_LIMIT if price is specified)
accountType string false SPOT is the default and only supported one.
price String false Required for STOP_LIMIT
stopPrice String false Price at which order is triggered
quantity String true base units for the order
amount String false quote units for the order
clientOrderId String false Maximum 64-character length*

The following characters are not allowed as part of clientOrderId: $;&@#`|~<>^!{}?[]

Response Field Data Type Description
id String smart order id
clientOrderId String clientOrderId user specifies in request or an empty string.

Cancel Replace Order

PUT https://api.poloniex.com/smartorders/234235233423

or

PUT https://api.poloniex.com/smartorders/cid:1234Abc

/smartorders/{id}

Example request 1 (cancel and replace a smart order's stop price):

{
    "clientOrderId": "1234Abc"
    "stopPrice": "18000"
}

Example output:

{
  "id": "29772698821328896",
  "clientOrderId": "1234Abc"
}

Example request 2 (cancel and replace an order that is already triggered):

{
    "clientOrderId": "1234Abc"
    "stopPrice": "18000",
    "price": "18005",
    "quantity": "20"
}

Example output:

{
  "code":    21301,
  "message": "Couldn't locate smart order"
}

Cancel an existing untriggered smart order and place a new smart order on the same symbol with details from existing smart order unless amended by new parameters. The replacement smart order can amend price, stopPrice, quantity, amount, type, and timeInForce fields. Specify the existing smart order id in the path; if id is a clientOrderId, prefix with cid: e.g. cid:myId-1. The proceedOnFailure flag is intended to specify whether to continue with new smart order placement in case cancelation of the existing smart order fails.

Request Parameter Data Type Required Description
clientOrderId String false clientOrderId of the new order*
price String false amended price
stopPrice String false amended stop price at which order is triggered
quantity String false amended quantity
amount String false amended amount
type String false amended type; STOP, STOP_LIMIT
timeInForce String false amended timeInForce; GTC, IOC, FOK (Default: GTC)
proceedOnFailure String false if set to true then new smart order will be placed even if cancelation of the existing smart order fails; if set to false (DEFAULT value) then new smart order will not be placed if the cancelation of the existing smart order fails

The following characters are not allowed as part of clientOrderId: $;&@#`|~<>^!{}?[]

Response Field Data Type Description
id String order id of the new smart order
clientOrderId String clientOrderId of the new smart order if specified or an empty string

Open Orders

GET https://api.poloniex.com/smartorders?limit={limit}

e.g. GET https://api.poloniex.com/smartorders?limit=20

/smartorders

Example output:

[
  {
    "id": "999991586827571200",
    "clientOrderId": "",
    "symbol": "ETH_USDT",
    "state": "PENDING_NEW",
    "accountType": "SPOT",
    "side": "BUY",
    "type": "STOP_LIMIT",
    "timeInForce": "GTC",
    "quantity": "0.036",
    "price": "1",
    "amount": "0.00",
    "stopPrice": "3750.00",    
    "createTime": 1630832295888,
    "updateTime": 1630832295888
  },
  {
    "id": "999991586827571288",
    "clientOrderId": "100832",
    "symbol": "BTC_USDT",
    "state": "PENDING_NEW",
    "accountType": "SPOT",
    "side": "SELL",
    "type": "STOP_LIMIT",
    "timeInForce": "GTC",
    "quantity": "0.015",
    "price": "11",  
    "amount": "0.00",
    "stopPrice": "55500.00",
    "createTime": 1630832298765,
    "updateTime": 1630832298765
  }
]

Get a list of (pending) smart orders for an account.

Request Parameter Data Type Required Description
limit Integer false Max number of records to return. Range: 1 - 2000. Default is 500.
Response Field Data Type Description
id String smart order id
clientOrderId String user specified id
symbol String The symbol to trade,like BTC_USDT
state String order state: PENDING_NEW
accountType String SPOT
side String BUY, SELL
type String STOP, STOP_LIMIT
timeInForce String GTC, IOC, FOK
quantity String base units for the order
price String
amount String quote units for the order
stopPrice String
createTime Long
updateTime Long

Order Details

GET https://api.poloniex.com/smartorders/14368195657859072

or

GET https://api.poloniex.com/smartorders/cid:18113

/smartorders/{id}

Example output:

[{
    "id": "14368195657859072",
    "clientOrderId": "18113",
    "symbol": "BTC_USDT",
    "state": "TRIGGERED",
    "accountType": "SPOT",
     "side": "BUY",
    "type": "STOP",
    "timeInForce": "GTC",
    "quantity": "0.2",
    "price": "41920",
    "amount": "10",
    "stopPrice": "41946",
    "createTime": 1644392044793,
    "updateTime": 0,
    "triggeredOrder": {
        "id": "24106600339865600",
        "clientOrderId": "18113",
        "symbol": "BTC_USDT",
        "state": "PARTIALLY_FILLED",
        "accountType": "SPOT",
        "side": "BUY",
        "type": "MARKET",
        "timeInForce": "GTC",
        "quantity": "0.00",
        "price": "0.00",
        "avgPrice": "39991.10",
        "amount": "10.00",
        "filledQuantity": "0.00025005",
        "filledAmount": "9.999774555",
        "createTime": 1646713861400,
        "updateTime": 1646713861400
    }
}]

Get a smart order’s status. {id} can be smart order’s id or its clientOrderId (prefix with cid: ). If smart order’s state is TRIGGERED, the response will include the triggered order’s data

Request Parameter Data Type Required Description
id String true smart order's id or its clientOrderId (prefix with cid: )
Response Field Data Type Description
id String smart order id
clientOrderId String user specified id
symbol String The symbol to trade,like BTC_USDT
state String order state: PENDING_NEW, PENDING_CANCEL, CANCELED, TRIGGERED, FAILED
accountType String SPOT
side String BUY, SELL
type String STOP, STOP_LIMIT
timeInForce String GTC, IOC, FOK
quantity String base units for the order
price String
amount String quote units for the order
stopPrice String
createTime Long
updateTime Long
triggeredOrder Json The triggered order's data. This will only be displayed when the smart order's state is TRIGGERED.

triggeredOrder has same fields as /orders/{id}

Cancel Order by Id

DELETE https://api.poloniex.com/smartorders/9876543

or

DELETE https://api.poloniex.com/smartorders/cid:88888

/smartorders/{id}

Example output:

{
  "orderId": "9876543",
  "clientOrderId": "88888",
  "state": "CANCELED",
  "code": 200,
  "message":""
}

Cancel a smart order by its id.

Request Parameter Data Type Required Description
id String true smart order's id or its clientOrderId (prefix with cid: )
Response Field Data Type Description
orderId String the smart order id
clientOrderId String clientOrderId of the smart order.
state String smart order's state (CANCELED)
code Integer response code.
message String response message.

Cancel Multiple Orders by Id

DELETE https://api.poloniex.com/smartorders/cancelByIds

/smartorders/cancelByIds

Example request (body is required, parameters could be optional):

{ 
  "orderIds": ["9876543", "111222333"],
  "clientOrderIds": ["88888", "myId-2"]
}

Example output:

[
  {
    "orderId": "9876543",
    "clientOrderId": "88888",
    "state": "CANCELED",
    "code": 200,
    "message":""
  },
  {
    "orderId": "111222333",
    "clientOrderId": "myId-2",
    "state": "CANCELED",
    "code": 200,
    "message":""
  }
]

Batch cancel one or many smart orders in an account by IDs.

Request Parameter Data Type Required Description
orderIds String No, except clientOrderIds is null or empty List of smart order id, size should be equal to that of clientOrderIds if it is specified
clientOrderIds String No, except orderIds is null or empty List of clientOrderId, size should be equal to that of orderIds if it is specified
Response Field Data Type Description
orderId String the smart order id
clientOrderId String clientOrderId of the smart order.
state String smart order's state (CANCELED)
code Integer response code.
message String response message.

Cancel All Orders

DELETE https://api.poloniex.com/smartorders

/smartorders

Example request (body is required, but parameters are optional; an empty body implies cancelling all smart orders):

{
    "symbols": ["BTC_USDT", "ETH_USDT"],  
    "accountTypes": ["SPOT"]
}

Example output:

[
  {
    "orderId": "1111111111", 
    "clientOrderId": "aaaaa", 
    "state": "CANCELED",
    "code": 200,
    "message": "SUCCESS"
  },
  {
    "orderId": "222222222", 
    "clientOrderId": "", 
    "state": "CANCELED",
    "code": 200,
    "message": "SUCCESS"
  }
]

Batch cancel all smart orders in an account

Request Parameter Data Type Required Description
symbols String array false If symbols are specified then all smart orders with those symbols will be canceled. If symbols are not specified or array is empty, it will cancel user's all smart orders for all symbols.
accountTypes String array false SPOT is the default and only supported one.
Response Field Data Type Description
orderId String the smart order id
clientOrderId String clientOrderId of the smart order.
state String order's state (CANCELED)
code Integer response code.
message String response message.

Order History

Note: Post Aug 1st, 2022, orderId has the format of uniform 17 digits whereas in the legacy system, orderId followed a natural growth pattern.

Orders History

GET https://api.poloniex.com/orders/history?accountType={accountType}&type={type}&side={side}&symbol={symbol}&from={from}&states={states}&direction={direction}&limit={limit}&hideCancel={hideCancel}&startTime={startTime}&endTime={endTime}' 

/orders/history

Example output:

[
  {
    "id": 35490370041151490,
    "clientOrderId": "Try1",
    "symbol": "TRX_USDC",
    "accountType": "SPOT",
    "side": "SELL",
    "type": "LIMIT_MAKER",
    "timeInForce": "GTC",
    "price": "3333",
    "avgPrice": "0",
    "quantity": "5",
    "amount": "0",
    "filledQuantity": "0",
    "filledAmount": "0",
    "state": "CANCELED",
    "orderSource": "API",
    "createTime": 1649427963597,
    "updateTime": 1649427963597,
    "loan": false,
    "cancelReason": 1
  },
  {
    "id": 34141303381950464,
    "clientOrderId": "223ABD",
    "symbol": "TRX_USDC",
    "accountType": "SPOT",
    "side": "BUY",
    "type": "LIMIT",
    "timeInForce": "GTC",
    "price": "1.05",
    "avgPrice": "0.06023436",
    "quantity": "10",
    "amount": "0",
    "filledQuantity": "10",
    "filledAmount": "0.6023436",
    "state": "FILLED",
    "orderSource": "API",
    "createTime": 1649106321041,
    "updateTime": 16491063210417,
    "loan": false,
    "cancelReason": 0
  }
]

Get a list of historical orders in an account. Interval between startTime and endTime cannot exceed 30 days. If only endTime is populated then startTime will default to 7 days before endTime. If only startTime is populated then endTime will be defaulted to 7 days after startTime. Please note that canceled orders that are before 7 days from current time will be archived. Rest of the orders will be archived before 90 days from current time.

Request Parameter Data Type Required Description
accountType String false SPOT is the default and only supported one.
type String false MARKET, LIMIT, LIMIT_MAKER (Default: all types)
side String false BUY, SELL (Default: both sides)
symbol String false Any supported symbol (Default: all symbols)
from Long false An 'orderId'. The query begins at ‘from'.
direction String false PRE, NEXT The direction before or after ‘from'.
states String false FAILED, FILLED, CANCELED. PARTIALLY_CANCELED Multiple states can be specified and separated with comma. (Default: all states)
limit Integer false Max number of orders to return. Default is 500. Max value is 1000.
hideCancel Boolean false true or false. Whether canceled orders should not be retrieved. (Default: false)
startTime Long false (milliseconds since UNIX epoch) orders updated before startTime will not be retrieved.
endTime Long false (milliseconds since UNIX epoch) orders updated after endTime will not be retrieved.
Response Field Data Type Description
id String order id
clientOrderId String user specified id
symbol String The symbol to trade, like BTC_USDT
accountType String SPOT
side String BUY, SELL
type String MARKET, LIMIT, LIMIT_MAKER
timeInForce String GTC, IOC, FOK
price String
avgPrice String avgPrice = filledAmount/filledQuantity
quantity String base units for the order
amount String quote units for the order
filledQuantity String
filledAmount String
state String FAILED, FILLED, CANCELED, PARTIALLY_CANCELED
orderSource String source of the order e.g API, APP, WEB
createTime Long
updateTime Long
loan Boolean true if borrowed funds, false otherwise
cancelReason Integer code specified to provide reason for cancelation if applicable; 0: "Not applicable"; 1: "As requested by user"; 1000-1999: "Due to breach of controls in matching engine; 1004: "Due to self-trade"; 2000: "Due to margin liquidation"; 2001: "Due to margin threshold breach"; 2002: "Due to symbol marked as offline"

Smart Orders History

GET https://api.poloniex.com/smartorders/history?accountType={accountType}&type={type}&side={side}&symbol={symbol}&from={from}&states={states}&direction={direction}&limit={limit}&hideCancel={hideCancel}&startTime={startTime}&endTime={endTime}' 

/smartorders/history

Example output:

[
  {
    "id": "25444163851911168",
    "clientOrderId": "",
    "symbol": "TRX_USDC",
    "state": "CANCELED",
    "accountType": "SPOT",
    "side": "BUY",
    "type": "STOP_LIMIT",
    "timeInForce": "GTC",
    "quantity": "2",
    "price": "100",
    "amount": "200",
    "stopPrice": "125",
    "createTime": 1647032761392,
    "updateTime": 1647032874275
  },
  {
    "id": "42745705164439552",
    "clientOrderId": "777111",
    "symbol": "BTC_USDT",
    "state": "FAILED",
    "accountType": "SPOT",
    "side": "BUY",
    "type": "STOP_LIMIT",
    "timeInForce": "GTC",
    "quantity": "0.1",
    "price": "39000",
    "amount": "100",
    "stopPrice": "40000",
    "createTime": 1651157770288,
    "updateTime": 1651157770345
  }
]

Get a list of historical smart orders in an account. Interval between startTime and endTime cannot exceed 30 days. If only endTime is populated then startTime will default to 7 days before endTime. If only startTime is populated then endTime will be defaulted to 7 days after startTime.

Request Parameter Data Type Required Description
accountType String false SPOT is the default and only supported one.
type String false STOP, STOP_LIMIT (Default: all types)
side String false BUY, SELL (Default: both sides)
symbol String false Any supported symbol (Default: all symbols)
from Long false An 'smart orderId'. The query begins at ‘from'.
direction String false PRE, NEXT The direction before or after ‘from'.
states String false FAILED, FILLED, CANCELED. PARTIALLY_CANCELED. Multiple states can be specified and separated with comma. (Default: all states)
limit Integer false Max number of orders to return. Default is 500. Max value is 2000.
hideCancel Boolean false true or false. Whether canceled smart orders should not be retrieved. (Default: false)
startTime Long false (milliseconds since UNIX epoch) smart orders updated before startTime will not be retrieved.
endTime Long false (milliseconds since UNIX epoch) smart orders updated after endTime will not be retrieved.
Response Field Data Type Description
id String smart order's id
clientOrderId String smart order's clientOrderId
symbol String The symbol to trade, like BTC_USDT
state String FAILED, FILLED, CANCELED, PARTIALLY_CANCELED
accountType String SPOT
side String BUY, SELL
type String STOP, STOP_LIMIT
timeInForce String GTC, IOC, FOK
quantity String base units for the order
price String
amount String quote units for the order
stopPrice String
createTime Long
updateTime Long

Trades

Note: Post Aug 1st, 2022, orderId has the format of uniform 17 digits whereas in the legacy system, orderId followed a natural growth pattern. TradeId starts at 60000000 and increments whereas in the legacy system, tradeId incremented with a smaller starting number.

Trade History

GET https://api.poloniex.com/trades?limit={limit}&endTime={endTime}&startTime={startTime}&from={from}&direction={direction}&symbols={symbols} 

/trades

Example output:

[
    {
        "id": "62561238",
        "symbol": "LINK_USDT",
        "accountType": "SPOT",
        "orderId": "32164923987566592",
        "side": "SELL",
        "type": "MARKET",
        "matchRole": "TAKER",
        "createTime": 1648635115525,
        "price": "11",
        "quantity": "0.5",
        "amount": "5.5",
        "feeCurrency": "USDT",
        "feeAmount": "0.007975",
        "pageId": "32164924331503616",
        "clientOrderId": "myOwnId-321"
    }
]

Get a list of all trades for an account. Currently, trade history is supported since 07/30/2021. Interval between startTime and endTime cannot exceed 90 days. If only endTime is populated then startTime will default to 7 days before endTime. If only startTime is populated then endTime will be defaulted to 7 days after startTime.

Request Parameter Data Type Required Description
limit Integer false Max number of records that is returned. Default is 500. Max value is 1000.
endTime Long false (milliseconds since UNIX epoch) trades filled after endTime will not be retrieved.
startTime Long false (milliseconds since UNIX epoch) trades filled before startTime will not be retrieved.
from Long false Globally unique tradeid (use pageId value from response).
direction String false PRE, NEXT The direction before or after ‘from'.
symbols String false one or multiple symbols separated by comma e.g. BTC_USDT,ETH_USDT
Response Field Data Type Description
id String trade id
symbol String The trading symbol, like BTC_USDT
accountType String SPOT
orderId String the associated order's id
side String order's side: BUY, SELL
type String order's type: LIMIT, MARKET, LIMIT_MAKER
matchRole String MAKER, TAKER
createTime Long trade create time
price String price for the trade
quantity String base units for the trade
amount String quote units for the trade
feeCurrency String fee currency name
feeAmount String fee amount
pageId String A globally unique trade Id that can be used as query param in 'from' field
clientOrderId String Order's clientOrderId

Trades by Order Id

GET https://api.poloniex.com/orders/30249408733945856/trades

/orders/{id}/trades

Example output:

[
    {
        "id": "68561226",
        "symbol": "LINK_USDT",
        "accountType": "SPOT",
        "orderId": "30249408733945856",
        "side": "BUY",
        "type": "LIMIT",
        "matchRole": "MAKER",
        "createTime": 1648200366864,
        "price": "3.1",
        "quantity": "1",
        "amount": "3.1",
        "feeCurrency": "LINK",
        "feeAmount": "0.00145",
        "pageId": "30341456333942784",
        "clientOrderId": ""
    }
]

Get a list of all trades for an order specified by its orderId.

Request Parameter Data Type Required Description
id String true the associated order's id (order's clientOrderId is not supported)
Response Field Data Type Description
id String trade id
symbol String The trading symbol to trade,like 'BTC_USDT'…
accountType String SPOT
orderId String the associated order's id
side String order's side: BUY、SELL
type String order's type: LIMIT, MARKET,LIMIT_MAKER
matchRole String MAKER, TAKER
createTime Long trade create time
price String price for the trade
quantity String base units for the trade
amount String quote units for the trade
feeCurrency String fee currency name
feeAmount String fee amount
pageId String A globally unique trade Id
clientOrderId String Order's clientOrderId

WEBSOCKET API

Overview
(WebSockets)

General Description

Restrictions

Messages

Message Description
ping (request) Client can ping the server to keep the connection alive
pong (response) Server response to a ping message
subscribe (request) Subscribe to a channel or set of channels for single or many instruments
unsubscribe (request) Unsubscribe from a channel for all or specified instruments
unsubscribe_all (request) Removes all user’s current subscriptions
list_subscriptions (request) List current subscriptions

Heartbeats

Note, ping request are issued by clients only. The server will not send ping requests.

Command
{
"event": "ping"
}
{
"event": "pong"
}

Subscriptions

Subscribe

Subscription Request + Initial Response

Request

# Subscribe to channel for symbol(s)

{
  "event": "subscribe",
  "channel": ["<channel>"],
  "symbols": [
    "<symbol1>",
    "<symbol2>",
    "<symbol3>"
  ]
}

or 

# Subscribe to all symbols for a given channel

{
  "event": "subscribe",
  "channel": ["<channel>"],
  "symbols": ["all"]
}

Response

# OK

{
  "event": "subscribe",
  "channel": <channel>
}

# Failure 

{
  "event": "error",
  "message": "Error Message"
}

Subscription Errors

Unsubscribe

Unsubscribe / Unsubscribe All

Request

# Unsubscribe the specified symbol from the channel

{
  "event": "unsubscribe",
  "channel": ["<channel>"],
  "symbols": [
    "<symbol>"
  ]
}

# Unsubscribe from the entire channel

{
  "event": "unsubscribe",
  "channel": ["<channel>"],
  "symbols": ["all"]
}

Response

# OK

{
  "channel": "<channel>",
  "event": "UNSUBSCRIBE"
}

# not subscribed

{
  "message": "Error Message",
  "event": "error"
}


Request

{
  "event": "unsubscribe_all"
}

Response

{
  "channel": "ALL",
  "event": "UNSUBSCRIBE_ALL"
}

Un-subscription Errors

List Subscriptions

List all current subscriptions

Request

{
  "event": "list_subscriptions"
}

Response

{
  "subscriptions": [<channel>]
}

Subscribing to Multiple Channels

# --> Request
{
  "event": "subscribe",
  "channel": ["orders","balances"],
  "symbols": ["all"]
}

# <-- Receipt Confirmation
{
  "channel": "orders",
  "event": "subscribe",
  "symbols": ["all"]
}

# <-- Receipt Confirmation
{
  "channel": "balances",
  "event": "subscribe",
  "symbols": ["all"]
}

# <-- Stream
{
    "channel":"orders",
    "data":[
        {
            "symbol":"LINK_USDC",
            "type":"LIMIT",
            "quantity":"10",
            "orderId":"32482887660077056",
            "tradeFee":"0",
            "clientOrderId":"4436176",
            "accountType":"SPOT",
            "feeCurrency":"",
            "eventType":"place",
            "source":"API",
            "side":"SELL",
            "filledQuantity":"0",
            "filledAmount":"0",
            "state":"NEW",
            "tradeTime":0,
            "tradeAmount":"0",
            "orderAmount":"0",
            "createTime":1648710923921,
            "price":"3",
            "tradeQty":"0",
            "tradePrice":"0",
            "tradeId":"0",
            "ts":1648710923948
        }
    ]
}


# <-- Stream (continued)
{
  "channel": "balances",
  "data": [{
    "changeTime": 1657312008411,
    "accountId": "1234",
    "eventType": "place_order",
    "available": "9999999983.668",
    "currency": "BTC",
    "id": 60018450912695040,
    "userId": 12345,
    "hold": "16.332",
    "ts": 1657312008443
  }]
}

Public Channels

WS APIs to access public channels. In general, incremental messages are expected post subscription to channels; however, there may be cases where snapshot messages are sent due to disconnection of the gateway services. It is advised to consume snapshot messages before continuing with any incremental messages processing.

Reference Data

Symbols

# --> Request
{
  "event": "subscribe",
  "channel": ["symbols"],
  "symbols": ["btc_usdt","eth_usdt"]
}

# <-- Receipt Confirmation
{
  "event": "subscribe",  
  "channel": "symbols",
  "symbols": ["BTC_USDT","ETH_USDT"]
}

# <-- Stream
{
    "channel": "symbols",
    "action": "snapshot",
    "data": [
     {
       "symbol": "BTC_USDT",
       "baseCurrencyName": "BTC",
       "quoteCurrencyName": "USDT",
       "displayName": "BTC/USDT",
       "state": "NORMAL",
       "visibleStartTime": 1234567890,
       "tradableStartTime": 1234567890,
       "symbolTradeLimit": {
          "symbol": "BTC_USDT",
          "priceScale": 10,
          "quantityScale": 8,
          "amountScale": 8,
          "minQuantity": "0.000000000000000001",
          "minAmount": "0.000000000000000001",
          "highestBid": "0.00",
          "lowestAsk": "0.00"
       },
       "crossMargin": {
          "supportCrossMargin": true,
          "maxLeverage": 3
       }
     },
     {
      "symbol": "ETH_USDT",
      "baseCurrencyName": "ETH",
      "quoteCurrencyName": "USDT",
      "displayName": "ETH/USDT",
      "state": "NORMAL",
      "visibleStartTime": 1234567890,
      "tradableStartTime": 1234567890,
      "symbolTradeLimit": {
        "symbol": "ETH_USDT",
        "priceScale": 10,
        "quantityScale": 8,
        "amountScale": 8,
        "minQuantity": "0.000000000000000001",
        "minAmount": "0.000000000000000001",
        "highestBid": "45000.00",
        "lowestAsk": "30000.00"
       },
       "crossMargin": {
          "supportCrossMargin": true,
          "maxLeverage": 3
        }
      }  
    ]
}

Information for symbols such as state and trade limits info. These are the same fields as /markets. Supports subscribing to a list of symbols or to all symbols.

Stream Response Field Data Type Description
symbol String symbol e.g: BTC_USDT
baseCurrencyName String base currency name
quoteCurrencyName String quote currency name
displayName String symbol display name
state String NORMAL, PAUSE, POST_ONLY
visibleStartTime Long time since symbol is visible in the frontend
tradableStartTime Long time since symbol is tradable
symbolTradeLimit Map symbol market configuration
crossMargin Map symbol cross margin info

symbolTradeLimit field

Response Field Data Type Description
symbol String symbol name
priceScale Integer decimal precision for price
quantityScale Integer decimal precision for quantity
amountScale Integer decimal precision for amount
minQuantity String minimum required quantity
minAmount String minimum required amount
highestBid String maximum allowed bid price (market bound)
lowestAsk String minimum allowed ask price (market bound)

crossMargin field

Response Field Data Type Description
supportCrossMargin Boolean indicates if symbol supports cross margin
maxLeverage Integer maximum supported leverage

Currencies

# --> Request
{
  "event": "subscribe",
  "channel": ["currencies"],
  "symbols": ["BTC"]
}

# <-- Receipt Confirmation
{
  "event": "subscribe",  
  "channel": "currencies",
  "symbols": ["BTC"]
}

# <-- Stream
{
    "channel": "currencies",
    "action": "snapshot",
    "data": [
     {
       "currency": "BTC",
       "id" : 28,
       "name" : "Bitcoin",
       "description" : "BTC Clone",
       "type" : "address",
       "withdrawalFee" : "0.00050000",
       "minConf" : 2,
       "depositAddress" : null,
       "blockchain" : "BTC",
       "delisted" : false,
       "tradingState" : "NORMAL",
       "walletState" : "ENABLED",
       "parentChain" : null,
       "isMultiChain" : true,
       "isChildChain" : false,
       "supportCollateral": true,
       "supportBorrow": true,
       "childChains" : [ "BTCTRON" ]
     }
   ]
}

Information for currencies. These are the same fields as /currencies including child chains. Supports subscribing to a list of currencies or to all currencies.

Stream Response Field Data Type Description
currency String currency
id Integer currency id
name String currency name
description String the type of blockchain the currency runs on
type String currency type
withdrawalFee String The network fee necessary to withdraw this currency
minConf Integer the minimum number of blocks necessary before a deposit can be credited to an account
depositAddress String if available, the deposit address for this currency.
blockchain String the blockchain the currency runs on
delisted Boolean designates whether (true) or not (false) this currency has been delisted from the exchange
tradingState String currency trading state: NORMAL or OFFLINE
walletState String currency state: ENABLED or DISABLED
parentChain String only displayed when includeMultiChainCurrencies is set to true. The parent chain
isMultiChain Boolean Indicates whether (true) or not (false) this currency is a multi chain
isChildChain Boolean Indicates whether (true) or not (false) this currency is a child chain
supportCollateral Boolean indicates if this currency supports collateral in cross margin
supportBorrow Boolean Indicates if this currency supports borrows in cross margin
childChains Array of String The child chains

Exchange

# --> Request
{
  "event": "subscribe",
  "channel": ["exchange"]
}

# <-- Receipt Confirmation
{
  "event": "subscribe",  
  "channel": "exchange"
}

# <-- Stream
{
    "channel": "exchange",
    "action" : "snapshot",
    "data": [
     {
       "MM"   :  "ON",
       "POM"  :  "OFF"
     }
  ]
}

Provides status of MM (maintenance mode) or POM (post only mode) for the exchange.

Stream Response Field Data Type Description
MM String maintenance mode e.g: ON or OFF
POM String post only mode e.g: ON or OFF

Market Data

Subscription Examples

Sample Requests and Stream

Request → Receipt Confirmation → Stream (continuous feed)

Candlesticks

# --> Request
{
  "event": "subscribe",
  "channel": ["candles_minute_1"],
  "symbols": ["btc_usdt"]
}

# <-- Receipt Confirmation
{
  "channel": "candles_minute_1",
  "event": "subscribe",
  "symbols": ["BTC_USDT"]
}

# <-- Stream
{
  "channel": "candles_minute_1",
  "data": [{
      "symbol": "BTC_USDT",
      "amount": "0",
      "high": "9999.07",
      "quantity": "0",
      "tradeCount": 0,
      "low": "9999.07",
      "closeTime": 1648057199999,
      "startTime": 1648057140000,
      "close": "9999.07",
      "open": "9999.07",
      "ts": 1648057141081
    }
  }]
}

Continuous feed of candlestick data with default/provided depth.

Valid channels are: candles_minute_1, candles_minute_5, candles_minute_10, candles_minute_15, candles_minute_30, candles_hour_1, candles_hour_2, candles_hour_4, candles_hour_6, candles_hour_12, candles_day_1, candles_day_3, candles_week_1 and candles_month_1

Stream Response Field Data Type Description
symbol String symbol name
amount String quote units traded over the interval
high String highest price over the interval
quantity String base units traded over the interval
tradeCount Integer count of trades
low String lowest price over the interval
closeTime Long close time of interval
startTime Long start time of interval
close String price at the end time
open String price at the start time
ts Long time the record was pushed

Trades

# --> Request
{
  "event": "subscribe",
  "channel": ["trades"],
  "symbols": ["BTC_USDT"]
}

# <-- Receipt Confirmation
{
  "channel": "trades",
  "event": "subscribe",
  "symbols": ["BTC_USDT"]
}

# <-- Stream
{
  "channel": "trades",
  "data": [{
    "symbol": "BTC_USDT",
    "amount": "70", 
    "takerSide": "buy",
    "quantity": "4",
    "createTime": 1648059516810,
    "price": "104", 
    "id": 1648059516810, 
    "ts": 1648059516832
  }]
}

Continuous feed of recent trades with default/provided depth.

Stream Response Field Data Type Description
symbol String symbol name
amount String quote units traded
takerSide String trade side (buy, sell)
quantity String base units traded
createTime Long time the trade was created
price String trade price
id Long trade id
ts Long time the record was pushed

Ticker

# --> Request
{
  "event": "subscribe",
  "channel": ["ticker"],
  "symbols": ["ETH_USDT"]
}

# <-- Receipt Confirmation
{
  "channel": "ticker",
  "event": "subscribe",
  "symbols": ["ETH_USDT"]
}

# <-- Stream
{
  "channel": "ticker",
  "data": [{
    "symbol": "ETH_USDT",
    "dailyChange": "0.9428",
    "high": "507",
    "amount": "20",
    "quantity": "3",
    "tradeCount": 11,
    "low": "16",
    "closeTime": 1634062351868,
    "startTime": 1633996800000,
    "close": "204",
    "open": "105",
    "ts": 1648052794867,
    "markPrice": "205",
  }]
}

Continuous feed (updated every second) of current day ticker data

Stream Response Field Data Type Description
symbol String symbol name
dailyChange String daily change in decimal
high String highest price over the last 24h
amount String quote units traded over the last 24h
quantity String base units traded over the last 24h
tradeCount Integer count of trades
low String lowest price over the last 24h
closeTime Long close time for the 24h interval
startTime Long start time for the 24h interval
close String price at the end time
open String price at the start time
ts Long time the record was pushed
markPrice String mark price at the end time

Ticker (All Symbols)

# --> Request
{
  "event": "subscribe",
  "channel": ["ticker"],
  "symbols": ["all"]
}

# <-- Receipt Confirmation
{
  "channel": "ticker",
  "event": "subscribe",
  "symbols": ["all"]
}

# <-- Stream
{
  "channel": "ticker",
  "data": [{
    "symbol": "BTC_USDT",
    "dailyChange": "-0.7409",
    "high": "38596.3",
    "amount": "26843.353145272",
    "quantity": "101.00438344",
    "tradeCount": 13,
    "low": "0.8654",
    "closeTime": 1648054681007,
    "startTime": 1647968280000,
    "close": "9999.07",
    "open": "38596.3"
    "ts": 1648054693082,
    "markPrice": "38234.43"
  }]
}

# <-- Stream (continued)
{
  "channel": "ticker",
  "data": [{
    "symbol": "ETH_USDT",
    "dailyChange": "0.9428",
    "high": "507",
    "amount": "20",
    "quantity": "3",
    "tradeCount": 11,
    "low": "16",
    "closeTime": 1634062351868,
    "startTime": 1633996800000,
    "close": "204",
    "open": "105",
    "ts": "1648052794867",
    "markPrice": "205"
  }]
}

Book

# --> Request
{
  "event": "subscribe",
  "channel": ["book"],
  "symbols": ["BTC_USDT"]
}

# --> Request With Depth Parameter

{
    "event": "subscribe",
    "channel": ["book"],
    "symbols": ["BTC_USDT"],
    "depth": 10
}

# <-- Receipt Confirmation
{
  "channel": "book",
  "event": "subscribe",
  "symbols": ["BTC_USDT"]  
}

# <-- Stream
{
  "channel": "book",
  "data": [{
    "symbol": "BTC_USDT",
    "createTime": 1648052239156,
    "asks": [],
    "bids": [
      ["40001.5", "2.87"],
      ["39999.4", "1"]
    ],
    "id": 123456,
    "ts": 1648052239192
  }, 
   
  {
    "symbol": "BTC_USDT",
    "createTime": 1648052239156,
    "asks": [],
    "bids": [
      ["40001", "2.87"],
      ["39999", "1"]
    ],
    "id": 345678,
    "ts": 1648052239192
  }]
}

Continuous feed of order book data containing asks and bids with default/provided depth. Default depth is 5. Valid depths are 5, 10, or 20, which can be specified using depth field as shown in the example. Order book is updated every 100ms.

Stream Response Field Data Type Description
symbol String symbol name
createTime Long time the record was created
asks List<String> sell orders, in ascending order of price
bids List<String> buy orders, in descending order of price
id Long id of the record (SeqId)
ts Long send timestamp

Book Level 2

# --> Request
{
  "event": "subscribe",
  "channel": ["book_lv2"],
  "symbols": ["btc_usdt"]
}

# <-- Receipt confirmation
{
  "channel": "book_lv2",
  "event": "subscribe",
  "symbols": ["BTC_USDT"]
}

# <-- Stream (snapshot)
{
  "channel": "book_lv2",
  "action": "snapshot",
  "data": [{
    "symbol": "BTC_USDT",
    "asks": [
      ["6.16", "0.6"],
      ["6.17", "1"],
      ["6.18", "1"],
      ...
    ],
    "bids": [
      ["5.65", "0.02"],
      ["5.61", "1.68"],
      ["5.6", "25.38"],
      ...
    ],
    "createTime": 1653029116343,
    "lastId": 10409,
    "id": 10410,
    "ts": 1652774727337
  }]
}


# <-- Stream (update)
{
  "channel": "book_lv2",
  "action": "update",
  "data": [{
    "symbol": "BTC_USDT",
    "asks": [
      ["6.35", "3"]
    ],
    "bids": [
      ["5.65", "0.02"]
    ],
    "createTime": 1653029116345,
    "lastId": 10410,
    "id": 10421,
    "ts": 1653029116529
  }]
}

Receive a snapshot of the full 20 level order book. Then, continuously in realtime receive an updated order book when the first 20 levels change.

To maintain a copy of the order book locally: 1. Send a book_lv2 subscription message. 2. Receive a snapshot message from the server. 3. Use an appropriate data structure to store the received book. 4. Receive an incremental order book message (update) from the server and make changes depending on [price, quantity] pair data: * When quantity is positive, update the corresponding price of your order book with this quantity. * When quantity is 0, delete this price from your order book. 5. Receive an order book message (snapshot) from the server, reset your order book data structure to match this new order book.

Note: If id of the last message does not match lastId of the current message then the client has lost connection with the server and must re-subscribe to the channel.

Stream Response Field Data Type Description
symbol String symbol name
asks List<String> sell orders, in ascending order of price
bids List<String> buy orders, in descending order of price
createTime Long time the record was created
lastId Long the id of the previous message
id Long id of the record (SeqId)
ts Long send timestamp

Authenticated Channels

WS APIs to access private channels

Authentication

{
  "event": "subscribe",
  "channel": ["auth"],
  "params": {
    "key": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX",
    "signTimestamp": XXXXXXXXXXXX,
    "signature": "XXXXXXXXXXXXXXXXXX"
  }
}

All requests that start with /ws/public do not require authentication. All /ws/private requests do, and authentication takes place in the form of an “auth” message sent after connecting:

WS Signature (sign) Generation

Steps:

  1. Compose a “Request String” to be used for the generation of the digital signature which would include:
    • a. Method type: GET\n
    • b. Access path, followed "\n" e.g. /ws\n
    • c. List of parameters: signTimestamp=1631018760000
      • NOTE: all parameters must be URL/UTF-8 encoded i.e. space is encoded as "%20"
    • d. The final string for the signature generation, based on the example values above will be:
          GET\n
          /ws\n
          signTimestamp=1631018760000

  2. Generate a digital signature using the "Request String" generated in the previous step and your key (Secret Key):
    • a. Call the HmacSHA256 hash function to get the hash value with the request string and API private key obtained in the previous step as two parameters.
    • b. Encode this hash with base-64 and the resulting value is used as the digital signature for this interface call.
    • c. For example: 5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8=

  3. Request example using the above generated signature:
ws wss://ws.poloniex.com/ws/private

  {
    "event": "subscribe",
    "channel": ["auth"],
    "params": {
      "key": "A3xxxxxx-99xxxxxx-84xxxxxx-7xxxx",
      "signTimestamp": 1631018760000,
      "signatureMethod": "HmacSHA256",
      "signatureVersion": "2",
      "signature": "5g4Rx5A2bLyMWFgR3Aqp+B4w+iJkL7n5OD3SuYtCJK8="
    }
  }

auth

To access private channels, you must authenticate first, and then you can access private channel data after success, if you encounter api key failure, you need to re-authenticate.

Request

{
  "event": "subscribe",
  "channel": ["auth"],
  "params": {
    "key": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX",
    "signTimestamp": XXXXXXXXXXXX,
    "signature": "XXXXXXXXXXXXXXXXXX"
  }
}

Response

# Successful return results

{
  "data":  {
    "success": true,
    "ts": 1645597033915
  },
  "channel": "auth"
}

# Failure to return results

{
  "data": {
    "success": false,
    "message": "Authentication failed!",
    "ts": 1646276295075
  },
  "channel": "auth"
}


Subscription Examples

Sample Requests and Stream

Request → Receipt Confirmation → Stream (continuous feed)

Orders

# --> Request
{
    "event": "subscribe",
    "channel": ["orders"],
    "symbols": ["all"]
}

# <-- Receipt Confirmation
{
  "channel": "orders",
  "event": "subscribe"
}

# <-- Stream
{
    "channel": "orders",
    "data": [
        {
            "symbol": "BTC_USDT",
            "type": "LIMIT",
            "quantity": "1",
            "orderId": "32471407854219264",
            "tradeFee": "0",
            "clientOrderId": "",
            "accountType": "SPOT",
            "feeCurrency": "",
            "eventType": "place",
            "source": "API",
            "side": "BUY",
            "filledQuantity": "0",
            "filledAmount": "0",
            "matchRole": "MAKER",
            "state": "NEW",
            "tradeTime": 0,
            "tradeAmount": "0",
            "orderAmount": "0",
            "createTime": 1648708186922,
            "price": "47112.1",
            "tradeQty": "0",
            "tradePrice": "0",
            "tradeId": "0",
            "ts": 1648708187469
        }
    ]
}

# Unsubscribe from  specific symbols

# --> Request
{
  "event": "unsubscribe",
  "channel": ["orders"],
  "symbols": [
    "btc_usdt",
    "eth_usdt"
  ]
}

# <-- Receipt Confirmation
{
  "event": "unsubscribe"
  "channel": "orders",
  "symbols": [
    "btc_usdt",
    "eth_usdt"
  ]
}

Real time information about client’s orders. There are three types of events: "place", "trade", and "canceled".

Stream Response Field Data Type Description
symbol String symbol name
type String MARKET, LIMIT, LIMIT_MAKER
quantity String number of base units for this order
orderId String order id
tradeFee String fee amount for the trade
clientOrderId String user specified id
accountType String SPOT
feeCurrency String fee currency name
eventType String place, trade, canceled
source String WEB, APP, API
side String BUY, SELL
filledQuantity String base units filled in this order
filledAmount String quote units filled in this order
matchRole String MAKER, TAKER
state String NEW, PARTIALLY_FILLED, FILLED, PENDING_CANCEL, PARTIALLY_CANCELED, CANCELED, FAILED
tradeTime Long time the trade was executed
tradeAmount String number of quote units for a trade
orderAmount String number of quote units for this order
createTime Long time the record was created
price String set price of the order
tradeQty String number of base units for a trade
tradePrice String price of the trade
tradeId String id of the trade
ts Long time the record was pushed

Balances

# --> Request
{
  "event": "subscribe",
  "channel": ["balances"]
}

# <-- Receipt Confirmation
{
  "channel": "balances",
  "event": "subscribe"
}

# <-- Stream
{
  "channel": "balances",
  "data": [{
      "changeTime": 1657312008411,
      "accountId": "1234",
      "accountType": "SPOT",
      "eventType": "place_order",
      "available": "9999999983.668",
      "currency": "BTC",
      "id": 60018450912695040,
      "userId": 12345,
      "hold": "16.332",
      "ts": 1657312008443
  }]
}

Real time information about all of client’s balance(s) updates. The "Symbols” field in a request does not do anything for balances (it is ignored). There are 7 different types of events: "place_order", "canceled_order","match_order", "transfer_in", "transfer_out", "deposit","withdraw"

Stream Response Field Data Type Description
changeTime Long time the change was executed
accountId String account id where the change is taking place
accountType String SPOT is the default and only supported one
eventType String event type
available String currency amount available
currency String currency name
id Long id of the asset update
userId Long user id
hold String currency amount on hold
ts Long time the record was pushed

Reference

Trading Rules

Price Protection

In order to prevent large price movements, any order that would move the price of a particular market by more than 20% (from the best bid or ask) will be rejected with an error code 21356 and error message: Order size would cause too much price movement. Reduce order size. Please note that smart orders are exempted from this rule.

Self Trading Prevention

Self trading is not allowed on the platform. Any incoming order that would result in self trading will be canceled. The resting order will remain on the order book.

SDKs

Python

https://github.com/poloniex/polo-sdk-python

Java

https://github.com/poloniex/polo-sdk-java

Currencies

This is a list of currency IDs. They are used in messages in the account notifications websockets channel, and can also be retrieved using the currencies REST endpoint.

ID Currency
1 1CR
446 AAVE
2 ABY
3 AC
4 ACH
560 ACH1
668 ADA
488 ADABEAR
489 ADABULL
503 ADD
430 ADEL
5 ADN
6 AEON
719 AERGO
7 AERO
579 AGLD
8 AIR
510 AKITA
429 AKRO
565 ALICE
556 ALPACA
463 ALPHA
712 ALPINE
275 AMP
656 ANGLE
640 ANY
720 APE
9 APH
464 API3
756 APX
258 ARCH
285 ARDR
672 ATLAS
313 ATOM
567 AUDIO
10 AUR
548 AUTO
344 AVA
621 AVAX
11 AXIS
553 AXS
506 B20
555 BABYDOGE
477 BAC
468 BADGER
369 BAL
12 BALLS
390 BAND
13 BANK
476 BAS
302 BAT
14 BBL
15 BBR
16 BCC
292 BCH
447 BCHA
308 BCHABC
339 BCHBEAR
340 BCHBULL
360 BCHC
309 BCHSV
17 BCN
269 BCY
18 BDC
19 BDG
502 BDP
322 BEAR
20 BELA
677 BICO
449 BID
595 BIFI
568 BIT
273 BITCNY
21 BITS
272 BITUSD
22 BLK
23 BLOCK
24 BLU
406 BLY
680 BLZ
343 BNB
25 BNS
305 BNT
662 BNX
633 BOBA
481 BOND
26 BONES
27 BOST
570 BP
441 BREE
500 BRG
341 BSVBEAR
342 BSVBULL
28 BTC
29 BTCD
30 BTCS
505 BTCST
31 BTM
695 BTRFLY
597 BTRST
32 BTS
320 BTT
697 BTTOLD
323 BULL
547 BURGER
33 BURN
34 BURST
324 BUSD
346 BVOL
372 BZRX
35 C2
557 C98
36 CACH
37 CAI
544 CAKE
730 CAW
38 CC
39 CCN
728 CEEK
40 CGA
41 CHA
617 CHESS
358 CHR
607 CHZ
42 CINNI
43 CLAM
561 CLV
44 CNL
45 CNMT
46 CNOTE
483 COMBO
47 COMM
361 COMP
48 CON
577 COOL
49 CORG
424 CORN
465 COVER
427 CREAM
650 CRO
422 CRT
401 CRV
50 CRYPT
692 CTC
530 CTSI
480 CUDOS
723 CULT
51 CURE
364 CUSDT
294 CVC
435 CVP
451 CVT
626 CVX
52 CYC
325 DAI
732 DAR
60 DASH
768 DC
277 DCR
379 DEC
518 DEGO
397 DEXT
573 DFA
53 DGB
432 DHT
391 DIA
54 DICE
55 DIEM
56 DIME
57 DIS
404 DMG
58 DNS
632 DOE
59 DOGE
647 DORA
392 DOS
400 DOT
61 DRKC
62 DRM
63 DSH
64 DVK
585 DYDX
644 DYP
65 EAC
66 EBT
67 ECC
618 EFI
68 EFL
520 ELON
69 EMC2
70 EMO
71 ENC
606 ENJ
629 ENS
298 EOS
355 EOSBEAR
354 EOSBULL
737 EPX
614 ERN
532 ERSDL
472 ESD
283 ETC
267 ETH
333 ETHBEAR
319 ETHBNT
334 ETHBULL
753 ETHS
754 ETHW
72 eTOK
73 EXE
270 EXP
74 FAC
469 FARM
75 FCN
271 FCT
413 FCT2
76 FIBRE
674 FIDA
362 FIL
736 FITFI
77 FLAP
78 FLDC
254 FLO
598 FLOKI
79 FLT
307 FOAM
519 FORTH
80 FOX
81 FRAC
739 FRAX
690 FREE
641 FREN
82 FRK
462 FRONT
83 FRQ
426 FSW
659 FTM
484 FTT
410 FUND
84 FVZ
351 FXC
643 FXS
85 FZ
86 FZN
735 GAL
589 GALA
93 GAME
87 GAP
296 GAS
88 GDN
388 GEEQ
724 GEIST
89 GEMZ
90 GEO
679 GF
436 GHST
91 GIAR
92 GLB
457 GLM
575 GLYPH
634 GM
623 GMEE
94 GML
716 GMT
635 GN
291 GNO
95 GNS
290 GNT
681 GODS
664 GODZ
96 GOLD
97 GPC
98 GPUC
261 GRC
99 GRCX
314 GRIN
100 GRS
470 GRT
537 GTC
101 GUE
102 H2O
741 HBB
459 HEGIC
642 HEX
428 HGET
689 HIGH
103 HIRO
104 HOT
326 HT
105 HUC
260 HUGE
705 HUNT
106 HVC
107 HYP
108 HZ
347 IBVOL
616 ICE
596 IDIA
109 IFC
613 ILV
630 IMX
265 INDEX
452 INJ
263 IOC
110 ITC
111 IXC
683 JBX
421 JFI
112 JLH
666 JOE
113 JPC
715 JPEG
345 JST
114 JUG
504 KCS
115 KDC
646 KEEP
116 KEY
529 KISHU
511 KLV
301 KNC
455 KP3R
726 KSM
382 KTON
743 KUB
605 LATTE
280 LBC
117 LC
118 LCL
591 LDO
119 LEAF
533 LEASH
120 LGC
327 LINK
357 LINKBEAR
356 LINKBULL
685 LIT
508 LIVE
699 LOKA
121 LOL
478 LON
696 LOOKS
303 LOOM
122 LOVE
312 LPT
123 LQD
713 LQDR
512 LQTY
368 LRC
278 LSK
124 LTBC
125 LTC
490 LTCBEAR
491 LTCBULL
126 LTCX
572 LUMI
749 LUNA
750 LUNC
513 LUSD
711 MAGIC
127 MAID
306 MANA
576 MASK
128 MAST
338 MATIC
578 MATTER
129 MAX
569 MBOX
639 MC
398 MCB
130 MCN
359 MDT
131 MEC
433 MEME
733 MESH
132 METH
693 METIS
439 MEXP
133 MIL
625 MIM
134 MIN
135 MINT
516 MIR
521 MIST
328 MKR
602 MLN
136 MMC
137 MMNXT
138 MMXIV
139 MNTA
637 MOCHI
140 MON
456 MPH
653 MPL
703 MQST
141 MRC
142 MRS
374 MTA
144 MTS
145 MUN
525 MVL
146 MYR
147 MZC
148 N5X
149 NAS
150 NAUT
151 NAV
152 NBT
687 NCR
702 NCT
348 NEO
153 NEOS
658 NEXO
526 NFT
515 NFTX
154 NL
155 NMC
310 NMR
156 NOBL
157 NOTE
158 NOXT
159 NRS
549 NRV
160 NSR
161 NTX
461 NU
721 NVIR
288 NXC
162 NXT
163 NXTI
729 NYM
627 O3
403 OCEAN
609 OGN
539 OKB
405 OM
295 OMG
143 OMNI
473 ONEINCH
727 ONSTON
694 OOKI
164 OPAL
407 OPT
648 ORCA
571 OSK
165 PAND
289 PASC
166 PAWN
329 PAX
482 PBTC35A
419 PEARL
649 PEOPLE
558 PERP
399 PERX
167 PIGGY
168 PINK
610 PLA
380 PLT
169 PLX
170 PMC
540 POL
673 POLIS
444 POLS
311 POLY
638 POLYDOGE
171 POT
172 PPC
173 PRC
655 PRINTS
408 PRQ
174 PRT
657 PSP
175 PTS
574 PUNK
686 PYR
176 Q2C
177 QBK
178 QCN
665 QI
179 QORA
180 QTL
304 QTUM
523 QUICK
619 RACA
274 RADS
651 RARE
438 RARI
682 RBN
181 RBY
566 RD
182 RDD
475 REEF
367 REN
437 REPV2
669 REQ
624 REVV
440 RFUEL
183 RIC
383 RING
531 RLC
707 RND
498 RNDR
466 ROOK
411 RSR
534 RUNE
184 RZR
636 SAITAMA
423 SAL
671 SAMO
434 SAND
282 SBD
396 SBREE
268 SC
185 SDC
454 SENSO
467 SFI
678 SFP
509 SHIB
186 SHIBE
744 SHIT
187 SHOPX
698 SHPING
188 SILK
189 SJCX
608 SLP
190 SLR
191 SMC
300 SNT
335 SNX
192 SOC
586 SOL
688 SOS
193 SPA
615 SPELL
714 SPIRIT
194 SQL
628 SQUID
195 SRCC
196 SRG
487 SRM
197 SSD
663 SSG
758 SSV
371 STAKE
281 STEEM
675 STEP
722 STG
297 STORJ
350 STPT
198 STR
287 STRAT
704 STRK
718 STRONG
701 SUKU
199 SUM
542 SUN
612 SUPER
414 SUSHI
384 SWAP
201 SWARM
349 SWFTC
409 SWINGBY
425 SWRV
202 SXC
373 SXP
203 SYNC
204 SYS
205 TAC
418 TAI
385 TEND
631 TIME
708 TITAN
611 TLM
600 TOKE
206 TOR
496 TORN
386 TRADE
394 TRB
645 TRIBE
479 TRU
377 TRUMPWIN
207 TRUST
315 TRX
330 TRXBEAR
331 TRXBULL
332 TUSD
208 TWE
654 UDT
209 UIS
210 ULTC
381 UMA
593 UMB
709 UMEE
706 UNFI
431 UNI
211 UNITY
212 URO
299 USDC
734 USDD
213 USDE
742 USDH
337 USDJ
214 USDT
517 UST
215 UTC
216 UTIL
217 UVC
684 VADER
442 VALUE
218 VIA
219 VOOT
276 VOX
691 VOXEL
700 VRA
220 VRC
499 VSP
221 VTC
453 WBTC
222 WC
223 WDC
495 WETH
514 WHALE
224 WIKI
321 WIN
748 WLKN
717 WLUNA
601 WNCG
412 WNXM
225 WOLF
603 WOO
363 WRX
226 X13
710 X2Y2
227 XAI
228 XAP
229 XBC
230 XC
587 XCAD
231 XCH
738 XCN
232 XCNOLD
233 XCP
234 XCR
652 XDEFI
235 XDN
402 XDOT
236 XDP
541 XEC
256 XEM
471 XFLR
237 XHC
238 XLB
492 XLMBEAR
493 XLMBULL
239 XMG
240 XMR
522 XOR
241 XPB
242 XPM
243 XRP
353 XRPBEAR
352 XRPBULL
244 XSI
245 XST
246 XSV
336 XTZ
247 XUSD
253 XVC
545 XVS
248 XXC
501 XYM
249 YACC
250 YANG
251 YC
375 YFI
415 YFII
417 YFL
416 YFV
554 YFX
564 YGG
252 YIN
393 ZAP
286 ZEC
497 ZKS
460 ZLOT
293 ZRX

Symbols

This is a list of supported market symbols with IDs. PriceScale defines the max number of decimals allowed for the price of a given symbol. PriceScale is also available by querying endpoints in Symbol Information.

Id Currency Pair PriceScale
14 BTS_BTC 10
24 DASH_BTC 6
27 DOGE_BTC 9
50 LTC_BTC 6
69 NXT_BTC 10
89 STR_BTC 9
112 XEM_BTC 9
114 XMR_BTC 6
117 XRP_BTC 8
121 BTC_USDT 2
122 DASH_USDT 2
123 LTC_USDT 3
125 STR_USDT 4
126 XMR_USDT 2
127 XRP_USDT 4
148 ETH_BTC 5
149 ETH_USDT 2
150 SC_BTC 10
162 DCR_BTC 6
163 LSK_BTC 8
168 STEEM_BTC 8
171 ETC_BTC 6
172 ETC_ETH 5
173 ETC_USDT 3
177 ARDR_BTC 9
178 ZEC_BTC 6
179 ZEC_ETH 5
180 ZEC_USDT 2
192 ZRX_BTC 8
193 ZRX_ETH 7
194 CVC_BTC 9
196 OMG_BTC 8
198 GAS_BTC 7
200 STORJ_BTC 8
201 EOS_BTC 8
202 EOS_ETH 7
203 EOS_USDT 4
204 SNT_BTC 9
207 KNC_BTC 8
210 BAT_BTC 8
212 BAT_USDT 4
213 LOOM_BTC 9
216 DOGE_USDT 6
218 LSK_USDT 4
219 SC_USDT 6
220 ZRX_USDT 4
221 QTUM_BTC 7
223 QTUM_USDT 3
224 BTC_USDC 2
225 ETH_USDC 2
226 USDT_USDC 5
229 MANA_BTC 8
231 MANA_USDT 4
232 BNT_BTC 8
238 BCHSV_BTC 6
239 BCHSV_USDC 2
240 XRP_USDC 4
241 XMR_USDC 2
242 STR_USDC 4
243 DOGE_USDC 5
244 LTC_USDC 2
245 ZEC_USDC 2
246 FOAM_BTC 9
248 NMR_BTC 7
249 POLY_BTC 9
250 LPT_BTC 7
253 ATOM_BTC 7
254 ATOM_USDC 2
255 ATOM_USDT 3
256 DASH_USDC 2
257 EOS_USDC 4
258 ETC_USDC 2
259 BCHSV_USDT 2
263 TRX_BTC 9
264 TRX_USDC 5
265 TRX_USDT 5
267 ETH_TRX 2
268 XRP_TRX 3
270 BTT_USDT 10
271 BTT_TRX 8
272 WIN_USDT 8
273 WIN_TRX 6
274 STEEM_TRX 3
275 LINK_BTC 7
276 LINK_TRX 2
277 XTZ_BTC 8
278 XTZ_USDT 4
279 XTZ_TRX 2
280 BEAR_USDT 7
281 BULL_USDT 2
282 TRXBEAR_USDT 11
283 TRXBULL_USDT 5
284 BTC_PAX 2
285 ETH_PAX 2
286 PAX_USDT 4
287 USDJ_USDT 4
288 BTC_USDJ 2
289 TRX_USDJ 5
290 SNX_BTC 7
291 SNX_USDT 3
292 SNX_TRX 2
293 BSVBEAR_USDT 9
294 BSVBULL_USDT 10
295 MATIC_BTC 8
296 MATIC_USDT 5
297 MATIC_TRX 2
298 BCHBEAR_USDT 7
299 BCHBULL_USDT 8
300 ETHBEAR_USDT 9
301 ETHBULL_USDT 2
302 MKR_BTC 5
303 MKR_USDT 2
304 BVOL_USDT 2
305 IBVOL_USDT 2
306 BTC_DAI 2
307 ETH_DAI 2
308 DAI_USDT 5
309 NEO_BTC 7
310 NEO_USDT 2
311 NEO_TRX 2
312 SWFTC_BTC 10
313 SWFTC_USDT 6
314 SWFTC_TRX 5
315 JST_USDT 6
316 JST_TRX 4
320 BCN_USDT 7
321 STEEM_USDT 5
322 LINK_USDT 4
323 BTT_USDJ 10
324 AVA_BTC 8
325 AVA_USDT 4
326 AVA_TRX 2
327 XRPBULL_USDT 8
328 XRPBEAR_USDT 11
329 EOSBULL_USDT 10
330 EOSBEAR_USDT 9
331 LINKBULL_USDT 7
332 LINKBEAR_USDT 11
333 CHR_BTC 9
334 CHR_USDT 4
335 CHR_TRX 3
336 BTC_BNB 2
337 BNB_USDT 2
338 BUSD_USDT 5
339 BNB_TRX 2
340 BNB_BUSD 2
341 BTC_BUSD 2
342 MDT_BTC 9
343 MDT_USDT 5
344 MDT_TRX 4
345 BCHC_USDT 6
346 COMP_USDT 2
347 COMP_ETH 5
350 CUSDT_USDT 5
353 REN_BTC 9
354 REN_USDT 4
355 LRC_BTC 8
356 LRC_USDT 4
357 BAL_USDT 3
359 WRX_BTC 8
360 WRX_USDT 4
361 WRX_TRX 3
362 STAKE_USDT 3
363 BZRX_USDT 8
364 SXP_BTC 8
365 SXP_USDT 4
366 SXP_TRX 3
367 MTA_USDT 4
368 YFI_USDT 2
369 STPT_BTC 9
370 STPT_USDT 5
374 DEC_USDT 5
376 UMA_USDT 3
377 KTON_USDT 2
378 RING_USDT 6
379 SWAP_BTC 9
380 SWAP_USDT 4
381 TEND_USDT 6
382 EXE_BTC 11
383 EXE_USDT 7
384 TRADE_USDT 5
385 GEEQ_USDT 4
386 ETHV_USDT 8
387 BAND_USDT 4
388 DOS_USDT 6
389 DIA_USDT 4
390 ZAP_USDT 6
392 PERX_USDT 7
393 TRB_USDT 2
395 DEXT_USDT 4
396 MCB_USDT 3
397 CRV_USDT 4
399 OM_USDT 5
400 OCEAN_USDT 4
401 BLY_USDT 6
403 SWINGBY_BTC 11
404 SWINGBY_USDT 6
405 SWINGBY_TRX 5
406 PRQ_USDT 4
407 DOT_USDT 3
411 RSR_USDT 6
412 WNXM_USDT 2
413 FCT2_USDT 5
414 FCT2_BTC 9
415 SUSHI_USDT 4
416 YFII_USDT 2
418 YFL_USDT 2
419 TAI_USDT 4
421 PEARL_USDT 2
424 JFI_USDT 2
427 CORN_USDT 2
428 SWRV_USDT 4
429 FSW_USDT 5
430 FUND_USDT 5
431 FUND_TRX 4
432 FUND_BTC 9
433 CREAM_USDT 2
434 SUNOLD_USDT 8
435 HGET_USDT 4
436 HGET_BTC 8
437 AKRO_USDT 6
438 AKRO_BTC 10
439 ADEL_USDT 6
440 UNI_USDT 4
441 DHT_USDT 4
442 MEME_USDT 2
443 CVP_USDT 4
444 GHST_USDT 4
445 REPV2_BTC 7
446 REPV2_USDT 3
447 RARI_USDT 3
449 DICE_USDT 5
450 DICE_TRX 4
451 AMP_BTC 10
452 AMP_USDT 6
453 AMP_TRX 4
454 SAND_BTC 8
455 SAND_USDT 4
456 RFUEL_USDT 6
458 VALUE_USDT 4
459 EMN_USDT 8
460 POLS_USDT 4
461 BTCTRON_USDT 2
462 AAVE_BTC 6
463 AAVE_USDT 2
464 BCHA_BTC 8
465 BCHA_USDT 8
468 BID_BTC 11
469 BID_USDT 6
470 OKU_USDT 8
471 CVT_BTC 11
472 CVT_USDT 6
473 INJ_BTC 8
474 INJ_USDT 4
475 BCH_BTC 6
476 BCH_USDT 2
477 BCH_USDC 2
478 SENSO_BTC 9
479 SENSO_USDT 4
480 KP3R_USDT 2
481 MPH_USDT 4
482 GLM_BTC 8
483 GLM_USDT 4
484 HEGIC_USDT 6
485 ZLOT_USDT 2
486 WBTC_BTC 6
487 WBTC_USDT 2
488 NU_USDT 4
489 FRONT_BTC 8
490 FRONT_USDT 4
491 API3_USDT 4
493 BADGER_USDT 3
494 FARM_BTC 6
495 FARM_USDT 2
496 DOT_BTC 7
497 GRT_USDT 4
498 SUNOLD_TRX 8
499 XFLR_USDT 5
500 ESD_USDT 6
501 ONEINCH_USDT 4
502 REEF_USDT 6
504 BAC_USDT 6
505 LON_USDT 4
506 ROOK_USDT 2
507 TRU_USDT 5
508 CUDOS_USDT 6
509 BOND_USDT 2
510 PBTC35A_USDT 2
511 COMBO_USDT 5
512 TUSD_USDT 5
513 TUSD_USDC 5
516 ADABEAR_USDT 11
517 ADABULL_USDT 4
518 LTCBEAR_USDT 7
519 LTCBULL_USDT 7
520 XLMBEAR_USDT 5
521 XLMBULL_USDT 6
522 WETH_USDT 2
523 TRU_BTC 9
524 FTT_USDT 3
525 SRM_USDT 4
526 LPT_USDT 2
527 BTC_TUSD 2
528 ETH_TUSD 2
529 ALPHA_USDT 4
530 TORN_USDT 2
531 ZKS_USDT 5
532 RNDR_USDT 4
533 RNDR_BTC 8
534 VSP_USDT 4
535 VSP_TRX 3
536 RNDR_TRX 3
537 BRG_USDT 8
538 BRG_TRX 8
539 BDP_USDT 5
540 ADD_USDT 5
541 KCS_USDT 2
542 BTCST_USDT 3
543 SFI_USDT 2
544 FIL_BTC 7
545 FIL_USDT 3
546 XYM_BTC 9
547 XYM_USDT 5
548 LIVE_USDT 5
549 SHIB_USDT 9
550 AKITA_USDT 10
551 B20_USDT 4
552 KLV_USDT 5
553 KLV_BTC 10
554 KLV_TRX 4
555 LQTY_USDT 4
556 LUSD_USDT 4
557 WHALE_USDT 4
558 NFTX_USDT 2
559 MIR_USDT 4
560 UST_USDT 5
561 DEGO_USDT 3
562 FORTH_USDT 3
563 ELON_USDT 10
564 MIST_USDT 4
565 XOR_USDT 3
566 QUICK_USDT 2
567 MVL_USDT 6
568 NFT_USDT 11
569 NFT_TRX 9
570 HT_USDT 3
571 KISHU_USDT 13
572 CTSI_USDT 4
573 RLC_USDT 4
574 ERSDL_USDT 6
575 LEASH_USDT 2
576 RUNE_USDT 3
577 KISHU_TRX 12
578 GTC_USDT 3
579 OKB_USDT 2
580 POL_USDT 5
581 SUN_USDT 7
582 SUN_TRX 5
583 XEC_USDT 8
584 CAKE_USDT 3
585 XVS_USDT 3
586 EPS_USDT 5
587 BURGER_USDT 4
588 AUTO_USDT 2
589 NRV_USDT 6
590 DOGEBULL_USDT 5
591 DOGEBEAR_USDT 16
592 DOGEBEAR2021_USDT 4
593 AXS_USDT 2
594 YFX_USDT 5
595 YFX_BTC 9
596 ALPACA_USDT 4
597 BABYDOGE_TRX 11
598 C98_USDT 4
599 PERP_USDT 4
600 TRU_TUSD 5
601 ACH1_USDT 5
602 CLV_USDT 4
603 YGG_USDT 4
604 ALICE_USDT 3
605 RD_USDT 2
606 AUDIO_USDT 4
607 BIT_USDT 4
608 BNB_USDC 2
609 LINK_USDC 3
610 MBOX_USDT 4
611 BP_USDT 5
612 OSK_USDT 2
613 OSK_TRX 2
614 LUMI_USDT 5
615 LUMI_TRX 4
616 DFA_USDT 4
617 PUNK_USDT 2
618 GLYPH_USDT 2
619 MASK_USDT 2
620 COOL_USDT 2
621 MATTER_USDT 4
622 MATTER_TRX 3
623 AGLD_USDT 4
624 MATIC_USDC 4
625 MANA_USDC 4
626 XEM_USDC 5
627 BTT_USDC 10
628 SRM_USDC 4
629 XEM_USDT 5
630 SRM_BTC 8
631 DYDX_USDT 3
632 XCAD_USDT 4
633 GALA_USDT 5
634 LDO_USDT 3
635 UMB_USDT 5
636 BIFI_USDT 2
637 IDIA_USDT 4
638 BTRST_USDT 3
639 FLOKI_USDT 8
640 TOKE_USDT 3
641 WNCG_USDT 4
642 MLN_USDT 2
643 WOO_USDT 4
644 LATTE_USDT 7
645 ENJ_USDT 4
646 CHZ_USDT 4
647 SLP_USDT 6
648 OGN_USDT 4
649 PLA_USDT 4
650 TLM_USDT 5
651 SUPER_USDT 4
652 ILV_USDT 2
653 ERN_USDT 4
654 SPELL_USDT 6
655 ICE_USDT 4
656 CHESS_USDT 4
657 EFI_USDT 4
658 RACA_USDT 7
659 AVAX_USDT 3
660 PROS_USDT 4
661 GMEE_USDT 5
662 REVV_USDT 5
663 MIM_USDT 4
664 CVX_USDT 3
665 O3_USDT 4
666 SHIB_USDC 8
667 AVAX_USDC 2
668 AVAX_BTC 6
669 AVAX_ETH 5
670 SQUID_USDT 5
671 ENS_USDT 2
672 IMX_USDT 4
673 TIME_USDT 2
674 DOE_USDT 5
675 GM_USDT 9
676 GN_USDT 10
677 SAITAMA_USDT 8
678 MOCHI_USDT 9
679 BOBA_USDT 4
680 POLYDOGE_USDT 12
681 MC_USDT 4
682 ANY_USDT 3
683 FREN_USDT 10
684 HEX_USDT 5
685 FXS_USDT 3
686 DYP_USDT 4
687 TRIBE_USDT 4
688 KEEP_USDT 4
689 SOL_USDT 3
690 SOL_BTC 6
691 SOL_USDC 2
692 DORA_USDT 3
693 ORCA_USDT 4
694 PEOPLE_USDT 5
695 CRO_USDT 5
696 RARE_USDT 4
697 XDEFI_USDT 4
698 MPL_USDT 2
699 UDT_USDT 2
700 PRINTS_USDT 3
701 ANGLE_USDT 5
702 PSP_USDT 5
703 NEXO_USDT 4
704 FTM_USDT 4
705 ETERNAL_USDT 4
706 BNX_USDT 2
707 SSG_USDT 5
708 GODZ_USDT 5
709 QI_USDT 5
710 JOE_USDT 4
711 ADA_USDT 5
712 REQ_USDT 4
713 SAMO_USDT 5
714 ATLAS_USDT 6
715 POLIS_USDT 4
716 FIDA_USDT 4
717 STEP_USDT 5
718 BICO_USDT 4
719 SFP_USDT 4
720 GF_USDT 4
721 BLZ_USDT 4
722 GODS_USDT 4
723 RBN_USDT 4
724 JBX_USDT 6
725 VADER_USDT 7
726 LIT_USDT 4
727 PYR_USDT 3
728 NCR_USDT 4
729 SOS_USDT 10
730 HIGH_USDT 4
731 FREE_USDT 8
732 VOXEL_USDT 4
733 ADA_BTC 8
734 ADA_USDC 4
735 CTC_USDT 4
736 METIS_USDT 2
737 OOKI_USDT 6
738 BTRFLY_USDT 2
739 LOOKS_USDT 4
740 BTTOLD_USDT 7
741 FTM_USDC 4
742 FTM_BTC 8
743 SHPING_USDT 5
744 LOKA_USDT 4
745 VRA_USDT 6
746 SUKU_USDT 5
747 NCT_USDT 5
748 MQST_USDT 7
749 STRK_USDT 2
750 HUNT_USDT 4
751 UNFI_USDT 3
752 RND_USDT 11
753 TITAN_USDT 4
754 UMEE_USDT 5
755 X2Y2_USDT 4
756 MAGIC_USDT 4
757 ALPINE_USDT 3
758 LQDR_USDT 3
759 SPIRIT_USDT 5
760 JPEG_USDT 7
761 GMT_USDT 4
762 WLUNA_USDT 7
763 STRONG_USDT 3
764 AERGO_USDT 4
765 APE_USDT 3
766 NVIR_USDT 5
767 STG_USDT 4
768 CULT_USDT 8
769 GEIST_USDT 6
770 OATH_USDT 5
771 KSM_USDT 2
772 ONSTON_USDT 5
773 CEEK_USDT 4
774 NYM_USDT 4
775 CAW_USDT 11
776 SQUAWK_USDT 10
777 DAR_USDT 4
778 MESH_USDT 4
779 USDD_USDT 5
780 GAL_USDT 3
781 FITFI_USDT 5
782 USDD_USDC 5
783 EPX_USDT 7
784 BTC_USDD 2
785 ETH_USDD 2
786 TRX_USDD 5
787 BTT_USDD 10
788 NFT_USDD 11
789 JST_USDD 6
790 WIN_USDD 8
791 SUN_USDD 7
792 TUSD_USDD 5
793 WLUNA_USDD 7
794 ELON_USDD 10
795 SHIB_USDD 9
796 DOGE_USDD 5
797 XRP_USDD 4
798 LTC_USDD 2
799 DOT_USDD 3
800 XCN_USDT 5
801 FRAX_USDT 4
802 FRAX_USDD 4
803 HBB_USDT 4
804 USDH_USDT 4
805 HBB_USDD 4
806 USDH_USDD 4
807 KUB_USDT 3
808 KUB_USDD 3
809 SHIT_USDT 10
810 SHIT_USDD 10
811 KSM_USDC 2
812 KSM_BTC 6
813 KSM_USDD 2
814 ECTE_USDT 4
815 ECTE_USDC 4
816 ECTE_USDD 4
817 EUROC_USDT 4
818 EUROC_USDC 4
819 EUROC_USDD 4
820 WLKN_USDT 5
821 WLKN_USDD 5
822 KDA_USDT 4
1000001 1CR_BTC 8
1000002 ABY_BTC 8
1000003 AC_BTC 8
1000004 ACH_BTC 8
1000005 ADN_BTC 8
1000006 AEON_BTC 8
1000007 AERO_BTC 8
1000008 AIR_BTC 8
1000010 APH_BTC 8
1000011 ARCH_BTC 8
1000012 AUR_BTC 8
1000013 AXIS_BTC 8
1000014 BALLS_BTC 8
1000015 BANK_BTC 8
1000016 BBL_BTC 8
1000017 BBR_BTC 8
1000018 BCC_BTC 8
1000020 BCHABC_BTC 8
1000021 BCHN_BTC 8
1000022 BCN_BTC 8
1000023 BCY_BTC 8
1000024 BDC_BTC 8
1000025 BDG_BTC 8
1000026 BELA_BTC 8
1000027 BITCNY_BTC 8
1000028 BITS_BTC 8
1000029 BITUSD_BTC 8
1000030 BLK_BTC 8
1000031 BLOCK_BTC 8
1000032 BLU_BTC 8
1000033 BNS_BTC 8
1000034 BONES_BTC 8
1000035 BOST_BTC 8
1000036 BTCD_BTC 8
1000037 BTCS_BTC 8
1000038 BTM_BTC 8
1000039 BTT_BTC 8
1000040 BURN_BTC 8
1000041 BURST_BTC 8
1000042 C2_BTC 8
1000043 CACH_BTC 8
1000044 CAI_BTC 8
1000045 CC_BTC 8
1000046 CCN_BTC 8
1000047 CGA_BTC 8
1000048 CHA_BTC 8
1000049 CINNI_BTC 8
1000050 CLAM_BTC 8
1000051 CNL_BTC 8
1000052 CNMT_BTC 8
1000053 CNOTE_BTC 8
1000054 COMM_BTC 8
1000055 CON_BTC 8
1000056 CORG_BTC 8
1000057 CRYPT_BTC 8
1000058 CURE_BTC 8
1000059 CYC_BTC 8
1000060 DAO_BTC 8
1000061 DGB_BTC 8
1000062 DIEM_BTC 8
1000063 DIS_BTC 8
1000064 DMG_BTC 8
1000065 DNS_BTC 8
1000066 DRKC_BTC 8
1000067 DRM_BTC 8
1000068 DVK_BTC 8
1000069 EBT_BTC 8
1000070 EFL_BTC 8
1000071 EMC2_BTC 8
1000072 ENC_BTC 8
1000073 ETHBNT_BTC 8
1000074 eTOK_BTC 8
1000076 EXP_BTC 8
1000077 FAC_BTC 8
1000078 FCN_BTC 8
1000079 FCT_BTC 8
1000080 FIBRE_BTC 8
1000081 FLAP_BTC 8
1000082 FLDC_BTC 8
1000083 FLO_BTC 8
1000084 FLT_BTC 8
1000085 FOX_BTC 8
1000086 FRAC_BTC 8
1000087 FRK_BTC 8
1000088 FRQ_BTC 8
1000089 FVZ_BTC 8
1000090 FXC_BTC 8
1000091 FZ_BTC 8
1000092 FZN_BTC 8
1000093 GAME_BTC 8
1000094 GAP_BTC 8
1000095 GDN_BTC 8
1000096 GEMZ_BTC 8
1000097 GEO_BTC 8
1000098 GIAR_BTC 8
1000099 GLB_BTC 8
1000100 GML_BTC 8
1000101 GNO_BTC 8
1000102 GNS_BTC 8
1000103 GNT_BTC 8
1000104 GOLD_BTC 8
1000105 GPC_BTC 8
1000106 GPUC_BTC 8
1000107 GRC_BTC 8
1000108 GRCX_BTC 8
1000109 GRIN_BTC 8
1000110 GRS_BTC 8
1000111 GUE_BTC 8
1000112 H2O_BTC 8
1000113 HIRO_BTC 8
1000114 HOT_BTC 8
1000115 HUC_BTC 8
1000116 HUGE_BTC 8
1000117 HVC_BTC 8
1000118 HYP_BTC 8
1000119 HZ_BTC 8
1000120 INDEX_BTC 8
1000121 IOC_BTC 8
1000122 ITC_BTC 8
1000123 IXC_BTC 8
1000124 JLH_BTC 8
1000125 JPC_BTC 8
1000126 JUG_BTC 8
1000127 KDC_BTC 8
1000128 KEY_BTC 8
1000129 LBC_BTC 8
1000130 LC_BTC 8
1000131 LCL_BTC 8
1000132 LEND_BTC 8
1000133 LGC_BTC 8
1000134 LOL_BTC 8
1000135 LOVE_BTC 8
1000136 LQD_BTC 8
1000137 LTBC_BTC 8
1000138 LTCX_BTC 8
1000139 MAID_BTC 8
1000140 MAST_BTC 8
1000141 MAX_BTC 8
1000142 MCN_BTC 8
1000143 MEC_BTC 8
1000144 METH_BTC 8
1000145 MIL_BTC 8
1000146 MIN_BTC 8
1000147 MINT_BTC 8
1000148 MMC_BTC 8
1000149 MMNXT_BTC 8
1000150 MMXIV_BTC 8
1000151 MON_BTC 8
1000152 MRC_BTC 8
1000153 MRS_BTC 8
1000154 MTS_BTC 8
1000155 MUN_BTC 8
1000156 MYR_BTC 8
1000157 MZC_BTC 8
1000158 N5X_BTC 8
1000159 NAS_BTC 8
1000160 NAUT_BTC 8
1000161 NAV_BTC 8
1000162 NBT_BTC 8
1000163 NEOS_BTC 8
1000164 NL_BTC 8
1000165 NMC_BTC 8
1000166 NOBL_BTC 8
1000167 NOTE_BTC 8
1000168 NOXT_BTC 8
1000169 NRS_BTC 8
1000170 NSR_BTC 8
1000171 NTX_BTC 8
1000172 NXC_BTC 8
1000173 NXTI_BTC 8
1000174 OMNI_BTC 8
1000175 OPAL_BTC 8
1000176 PASC_BTC 8
1000177 PAWN_BTC 8
1000178 PIGGY_BTC 8
1000179 PINK_BTC 8
1000180 PLX_BTC 8
1000181 PMC_BTC 8
1000182 POT_BTC 8
1000183 PPC_BTC 8
1000184 PRC_BTC 8
1000185 PRT_BTC 8
1000186 PTS_BTC 8
1000187 Q2C_BTC 8
1000188 QBK_BTC 8
1000189 QCN_BTC 8
1000190 QORA_BTC 8
1000191 QTL_BTC 8
1000192 RADS_BTC 8
1000193 RBY_BTC 8
1000194 RDD_BTC 8
1000195 REP_BTC 8
1000196 RIC_BTC 8
1000197 RZR_BTC 8
1000198 SBD_BTC 8
1000199 SDC_BTC 8
1000200 SHIBE_BTC 8
1000201 SHOPX_BTC 8
1000202 SILK_BTC 8
1000203 SJCX_BTC 8
1000204 SMC_BTC 8
1000205 SOC_BTC 8
1000206 SPA_BTC 8
1000207 SQL_BTC 8
1000208 SRCC_BTC 8
1000209 SRG_BTC 8
1000210 SSD_BTC 8
1000212 STRAT_BTC 8
1000213 SUM_BTC 8
1000214 SWARM_BTC 8
1000215 SXC_BTC 8
1000216 SYNC_BTC 8
1000217 SYS_BTC 8
1000218 TAC_BTC 8
1000219 TOR_BTC 8
1000220 TRUST_BTC 8
1000221 TUSD_BTC 8
1000222 TWE_BTC 8
1000223 UIS_BTC 8
1000224 ULTC_BTC 8
1000225 UNITY_BTC 8
1000226 URO_BTC 8
1000227 USDE_BTC 8
1000228 UTC_BTC 8
1000229 UTIL_BTC 8
1000230 UVC_BTC 8
1000231 VIA_BTC 8
1000232 VOOT_BTC 8
1000233 VOX_BTC 8
1000234 VRC_BTC 8
1000235 VTC_BTC 8
1000236 WC_BTC 8
1000237 WDC_BTC 8
1000238 WIKI_BTC 8
1000239 WOLF_BTC 8
1000240 X13_BTC 8
1000241 XAI_BTC 8
1000242 XAP_BTC 8
1000243 XBC_BTC 8
1000244 XC_BTC 8
1000245 XCH_BTC 8
1000246 XCNOLD_BTC 8
1000247 XCP_BTC 8
1000248 XCR_BTC 8
1000249 XDN_BTC 8
1000250 XDP_BTC 8
1000251 XFIL_BTC 8
1000252 XHC_BTC 8
1000253 XLB_BTC 8
1000254 XMG_BTC 8
1000255 XPB_BTC 8
1000256 XPM_BTC 8
1000257 XSI_BTC 8
1000258 XST_BTC 8
1000259 XSV_BTC 8
1000260 XUSD_BTC 8
1000261 XVC_BTC 8
1000262 XXC_BTC 8
1000263 YACC_BTC 8
1000264 YANG_BTC 8
1000265 YC_BTC 8
1000266 YIN_BTC 8
1000267 BAL_ETH 8
1000268 BAT_ETH 8
1000269 BCH_ETH 8
1000270 BNT_ETH 8
1000271 CVC_ETH 8
1000272 DAO_ETH 8
1000273 GAS_ETH 8
1000274 GNO_ETH 8
1000275 GNT_ETH 8
1000276 KNC_ETH 8
1000277 LOOM_ETH 8
1000278 LSK_ETH 8
1000279 MANA_ETH 8
1000280 OMG_ETH 8
1000281 QTUM_ETH 8
1000282 REP_ETH 8
1000283 SNT_ETH 8
1000284 STEEM_ETH 8
1000285 TUSD_ETH 8
1000286 BLOCK_HZ 8
1000287 BCN_LTC 8
1000288 CORG_LTC 8
1000289 DIEM_LTC 8
1000290 DIME_LTC 8
1000291 EAC_LTC 8
1000292 ECC_LTC 8
1000293 EMO_LTC 8
1000294 FLAP_LTC 8
1000295 GNS_LTC 8
1000296 IFC_LTC 8
1000297 LEAF_LTC 8
1000298 MEC_LTC 8
1000299 MRC_LTC 8
1000300 NXT_LTC 8
1000301 PAND_LTC 8
1000302 SLR_LTC 8
1000303 SUNOLD_LTC 8
1000304 DMG_TRX 8
1000305 FXC_TRX 8
1000306 PEARL_TRX 8
1000307 STPT_TRX 8
1000308 TAI_TRX 8
1000310 BCHABC_USDC 8
1000311 FOAM_USDC 8
1000312 GRIN_USDC 8
1000313 ANK_USDT 8
1000314 BAS_USDT 8
1000316 BCHABC_USDT 8
1000317 BCHN_USDT 8
1000318 BNT_USDT 8
1000319 BREE_USDT 8
1000320 COVER_USDT 8
1000321 CRT_USDT 8
1000322 DGB_USDT 8
1000323 DMG_USDT 8
1000325 FXC_USDT 8
1000326 GNT_USDT 8
1000327 GRIN_USDT 8
1000328 KNC_USDT 8
1000329 LEND_USDT 8
1000330 LOOM_USDT 8
1000331 MEXP_USDT 8
1000332 NXT_USDT 8
1000333 OPT_USDT 8
1000334 PLT_USDT 8
1000335 REP_USDT 8
1000336 SAL_USDT 8
1000337 SBREE_USDT 8
1000338 SNT_USDT 8
1000339 TRUMPLOSE_USDT 8
1000340 TRUMPWIN_USDT 8
1000341 XDOT_USDT 8
1000342 XFIL_USDT 8
1000343 YFV_USDT 8
1000344 BBR_XMR 8
1000345 BCN_XMR 8
1000346 BLK_XMR 8
1000347 BTCD_XMR 8
1000348 DASH_XMR 8
1000349 DIEM_XMR 8
1000350 DSH_XMR 8
1000351 HYP_XMR 8
1000352 IFC_XMR 8
1000353 LTC_XMR 8
1000354 MAID_XMR 8
1000355 MNTA_XMR 8
1000356 NXT_XMR 8
1000357 QORA_XMR 8
1000358 XDN_XMR 8
1000359 ZEC_XMR 8
1000360 BTC_XUSD 8
1000361 HYP_XUSD 8
1000362 LTC_XUSD 8
1000363 MMXIV_XUSD 8
1000364 NXT_XUSD 8
1000365 STR_XUSD 8
1000366 XMR_XUSD 8
1000367 XRP_XUSD 8
1000368 POLOTEST1_POLOTEST2 4
1000369 POLOTEST1_POLOTEST3 5
1000370 POLOTEST1_POLOTEST4 6
1000371 POLOTEST2_POLOTEST3 6
1000372 POLOTEST2_POLOTEST4 6
1000373 POLOTEST3_POLOTEST4 6
1000374 POLOTEST2_POLOTEST1 4
1000375 ETHS_ETH 4
1000376 ETHW_ETH 5
1000377 ETHS_USDT 2
1000378 ETHS_USDD 2
1000379 ETHW_USDT 2
1000380 ETHW_USDD 2
1000381 LUNC_USDD 8
1000382 LUNC_USDT 8
1000383 LUNA_USDT 3
1000384 LUNA_USDD 3
1000385 APX_USDD 5
1000386 APX_USDT 5
1000387 SSV_USDD 2
1000388 SSV_USDT 2
1000389 DC_USDD 6
1000390 DC_USDT 6

Error Codes

Belos is the list of error codes and its description.

General

Error Code Description
500 Internal System Error
603 Internal Request Timeout
601 Invalid Parameter
415 System Error
602 Missing Required Parameters

Accounts

Error Code Description
21604 Invalid UserId
21600 Account Not Found
21605 Invalid Account Type
21102 Invalid Currency
21100 Invalid account
21704 Missing UserId and/or AccountId
21700 Error updating accounts
21705 Invalid currency type
21707 Internal accounts Error
21708 Currency not available to User
21601 Account locked. Contact support
21711 Currency locked. Contact support
21709 Insufficient balance
250000 Transfer error. Try again later
250001 Invalid toAccount for transfer
250002 Invalid fromAccount for transfer
250003 Invalid transfer amount
250004 Transfer is not supported
250005 Insufficient transfer balance
250008 Invalid transfer currency
250012 Futures account is not valid

Trading

Error Code Description
21110 Invalid quote currency
10040 Invalid symbol
10060 Symbol setup error
10020 Invalid currency
10041 Symbol frozen for trading
21340 No order creation/cancelation is allowed as Poloniex is in Maintenane Mode
21341 Post-only orders (type as LIMIT_MAKER) allowed as Poloniex is in Post Only Mode
21342 Price is higher than highest bid as Poloniex is in Maintenance Mode
21343 Price is lower than lowest bid as Poloniex is in Maintenance Mode
21351 Trading for this account is frozen. Contact support
21352 Trading for this currency is frozen
21353 Trading for US customers is not supported
21354 Account needs to be verified via email before trading is enabled. Contact support
24106 Invalid market depth
24201 Service busy. Try again later

Orders

Error Code Description
21301 Order not found
21302 Batch cancel order error
21304 Order is filled
21305 Order is canceled
21307 Error during Order Cancelation
21309 Order price must be greater than 0
21310 Order price must be less than max price
21311 Order price must be greater than min price
21312 Client orderId already exists
21314 Max limit of open orders (2000) exceeded
21315 Client orderId exceeded max length of 17 digits
21317 Amount must be greater than 0
21319 Invalid order side
21320 Invalid order type
21321 Invalid timeInForce value
21322 Amount is less than minAmount trade limit
21324 Invalid account type
21327 Order pice must be greater than 0
21328 Order quantity must be greater than 0
21330 Quantity is less than minQuantity trade limit
21335 Invalid priceScale for this symbol
21336 Invalid quantityScale for this symbol
21337 Invalid amountScale for this symbol
21344 Value of limit param is greater than max value of 100
21345 Value of limit param value must be greater than 0
21346 Order Id must be of type Long
21348 Order type must be LIMIT_MAKER
21347 Stop price must be greater than 0
21349 Order value is too large
21350 Amount must be greater than 1 USDT
21355 Interval between startTime and endTime in trade/order history has exceeded 7 day limit
21356 Order size would cause too much price movement. Reduce order size.
24101 Invalid symbol
24102 Invalid K-line type
24103 Invalid endTime
24104 Invalid amount
24105 Invalid startTime
25020 No active kill switch

Smartorders

Error Code Description
25000 Invalid userId
25001 Invalid parameter
25002 Invalid userId.
25003 Unable to place order
25004 Client orderId already exists
25005 Unable to place smart order
25006 OrderId and clientOrderId already exists
25007 Invalid orderid
25008 Both orderId and clientOrderId are required
25009 Failed to cancel order
25010 Unauthorized to cancel order
25011 Failed to cancel due to invalid paramters
25012 Failed to cancel
25013 Failed to cancel as orders were not found
25014 Failed to cancel as smartorders were not found
25015 Failed to cancel as no orders exist
25016 Failed to cancel as unable to release funds
25017 No orders were canceled
25018 Invalid accountType
25019 Invalid symbol























Changelog

Recent changes and additions to the Poloniex Spot API.

2023-02-14 Introducing Websockets Reference Data Channels

Subscribe to symbols, currencies, and exchange reference public data channels found in https://docs.poloniex.com/#public-channels

2022-12-28 Introducing Subaccounts

Create a group of accounts with primary and subaccount features under /subaccounts

2022-12-15 Introducing Cancel Replace

Cancel and replace with new order details in a single call via PUT /orders/{id} and PUT /smartorders/{id}

2022-11-30 Introducing Cross Margin

Trade and borrow funds using margin. Endpoints under /margin/accountMargin.

2022-11-08 Introducing Multiple Orders Creation

Create multiple orders in a single call via /orders/batch

2022-10-20 Introducing Kill Switch

Kill switch functionality can be accessed via /orders/killSwitch and /orders/killSwitchStatus

2022-09-13 Adding New Rest Endpoint - Account Activity

Account activity such as airdrop, rebates etc. can be accessed via /accounts/activity

2022-09-08 Adding AccountType

Balances websockets channel now shows accountType as a field to match rest API

2022-08-24 SSV Listing

Listing of SSV Network (SSV), and the following market(s) SSV_USDT,SSV_USDD.

2022-08-24 KSM Listing

Listing of Kusama (KSM), and the following market(s) KSM_USDT,KSM_USDD.

2022-08-19 APX Listing

Listing of ApolloX (APX), and the following market(s) APX_USDT,APX_USDD.

2022-08-17 LUNC Listing

Listing of Terra Luna Classic (LUNC), and the following market(s) LUNC_USDT,LUNC_USDD.

2022-08-17 LUNA Listing

Listing of Terra (LUNA), and the following market(s) LUNA_USDT,LUNA_USDD.

2022-08-10 Delisting markets for BTC_USDJ,TRX_USDJ,BTT_USDJ,BTC_DAI,ETH_DAI,BTC_PAX,ETH_PAX

Delisted the following markets: BTC_USDJ,TRX_USDJ,BTT_USDJ,BTC_DAI,ETH_DAI,BTC_PAX,ETH_PAX

2022-08-10 Delisting BP,BIFI,UMB,CHESS,LATTE,GM,MOCHI,O3,MC,ANY,RARE,ANGLE,XDEFI,MPL,REVV,

SFP,BLZ,JBX,VADER,JOE,LIT,UNFI,MAGIC,STRONG currency markets

Delisting the following currency markets BP,BIFI,UMB,CHESS,LATTE,GM,MOCHI,O3,MC,ANY,RARE,ANGLE,XDEFI,MPL,REVV,SFP,BLZ,JBX,VADER,JOE, LIT,UNFI,MAGIC,STRONG.

2022-08-09 PaymentId Support

Endpoint /wallets/withdraw includes an optional param called paymentId to support withdrawals for currencies that use a common deposit address.

2022-08-08 Delisting TEND,MCB,TAI,PEARL,ADEL,MPH,HEGIC,BAC,PBTC35A,COMBO,FORTH,WHALE,LUSD,

AUTO,NRV,BABYDOGE,DFA,MASK,GLYPH currency markets

Delisting the following currency markets TEND,MCB,TAI,PEARL,ADEL,MPH,HEGIC,BAC,PBTC35A,COMBO,FORTH,WHALE,LUSD,AUTO,NRV,BABYDOGE,DFA, MASK,GLYPH.