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.
- HTTP API:
https://api.poloniex.com/
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:
- “key” - entry whose value is api caller’s apiKey. e.g. “A…-99…”
- “signatureMethod” - optional entry whose value is signature method. e.g. “hmacSHA256”
- “signatureVersion” - optional entry whose value is signature version. e.g. “1“
- “signTimestamp” - entry whose value is a timestamp. e.g. “1649371360000“
- “signature” - entry whose value is the signature generated by API caller for the request. e.g. “4F…%3D”.
- "recvWindow" - optional entry whose value is duration in milliseconds. e.g. "1500". This field provides an additional layer of control, where if specified, the request will be rejected if the (poloniex system time - signTimestamp) is in excesss of recvWindow. Below are the error code responses:
- 400: signTimestamp is more than 1 second from poloniex system time
- 408: request timeout as recWindow threshold has been breached
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:
- 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
- Add requestBody and timestamp:
- 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
- Timestamp needs to be added. Timestamps are valid for 1 minute.
- Method type (GET/POST/DELETE/etc) followed
- 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=
- 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
- Public requests are limited per IP address and set of 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
- Authenticated requests for non-resource intensive endpoints as listed below are limited based on user's ID and MVP status. Rate limits are applied across all these 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 |
- Authenticated requests for resource intensive endpoints as listed below are limited based on user's ID and MVP status. Rate limits are applied across all these endpoints.
| 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}¤cy={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
General Description
WebSockets can be read by any standard websocket library. Data is organized into Public and Private Channels to which an API client may subscribe.
All messages sent and received via WebSockets are encoded in JSON format.
Only supported json tags will be processed, everything else will be ignored with basic error response.
The WebSockets server expects a message or a
pingevery 30 seconds or it will end the client’s session without warning.Private API:
wss://ws.poloniex.com/ws/privatePublic API:
wss://ws.poloniex.com/ws/public
Restrictions
Websockets access is divided into 2 endpoints, the private endpoint only allows access to private channels, not to public channels. The public endpoint only allows access to the public channel, not the private channel. Endpoint restrictions are only valid for 'subscribe' events; other events such as 'ping, unsubscribe' are not specially restricted.
A single IP is limited to 2000 simultaneous connections on each of the public and private channels.
Once a connection has been established, each connection is limited to 500 requests per second.
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
Subscription failed (generic)Already subscribedBad request (generic)
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
Request failed (generic)Not subscribed
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:
“key” - entry whose value is api caller’s apiKey. e.g.
“A…-99…”“signTimestamp” - entry whose value is a timestamp. e.g.
“1649371360000““signature” - entry whose value is the signature generated by API caller for the request. e.g.
“4F…%3D”."signatureMethod” - optional entry whose value is signature method. e.g. “HmacSHA256”
"signatureVersion” - optional entry whose value is signature version. e.g. “2“
WS Signature (sign) Generation
Steps:
- 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"
- NOTE: all parameters must be URL/UTF-8 encoded i.e. space is encoded as
- d. The final string for the signature generation, based on the example values above will be:
GET\n
/ws\n
signTimestamp=1631018760000
- a. Method type:
- 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=
- 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.