NAV Navbar
shell

Introduction

Setup

# make sure you have curl installed

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 endpoint is accessed via GET requests while the private endpoint is accessed via HMAC-SHA512 signed POST requests using API keys. Both types of HTTP endpoints return results in JSON format.

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

Getting Started

Sign Up

If you do not have a Poloniex account yet, use the button below to sign up.

Sign Up

Create an API Key

Once you are verified and have an account, you can create an API Key.

Enabling IP address restrictions for API keys is strongly recommended. Withdrawals are disabled by default and must be enabled on a per key basis.

As the name implies, your secret must remain private! If you suspect your key has been compromised, immediately disable that key and generate a new one.

Authenticate

# Find the HMAC-SHA512 signature of your POST parameters
# using your secret key. Set the nonce to the current
# milliseconds. (available with date +%s00000)
 echo -n "command=returnBalances&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET
# You will use this signature as a header in your request.
# For example:
 curl -X POST \
     -d "command=returnBalances&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Private HTTP endpoints are authenticated using HMAC-SHA512 signed POST request.

Private HTTP endpoints also require a nonce, which must be an integer greater than the previous nonce used. There is no requirement that nonces increase by a specific amount, so the current epoch time in milliseconds is an easy choice. As each API key has its own nonce tracking, using a different key for each client process can greatly simplify nonce management.

Minimize Latency

If you will be performing high-frequency trading, you may wish to locate your bots as close to our servers as possible. As Poloniex uses Cloudflare for all requests, you can minimize network latency by positioning your client near the Cloudflare gateway in Dublin, Ireland. You can identify which Cloudflare gateway your client is accessing by running this command on the same machine as your bot:

curl -s https://www.cloudflare.com/cdn-cgi/trace

Cloudflare’s Dublin data center will return a “colo” field of “DUB”. If you get a different “colo” value, you can look up the location at https://www.cloudflarestatus.com.

HTTP API

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

Please note that there is a default limit of 6 calls per second. If you require more than this, please consider optimizing your application using the websocket-based push API, the "moveOrder" command, or the "all" parameter where appropriate.

Making more than 6 calls per second to the API, or repeatedly and needlessly fetching excessive amounts of data, can result in rate limit. Please be careful.

Public HTTP API Methods

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

There are seven public methods, all of which take HTTP GET requests and return output in JSON format. No authentication is necessary but you must not excessively use any API endpoint.

returnTicker

curl "https://poloniex.com/public?command=returnTicker"

Example output:

...
{ BTC_BCN:
   { id: 7,
     last: '0.00000024',
     lowestAsk: '0.00000025',
     highestBid: '0.00000024',
     percentChange: '0.04347826',
     baseVolume: '58.19056621',
     quoteVolume: '245399098.35236773',
     isFrozen: '0',
     high24hr: '0.00000025',
     low24hr: '0.00000022' },
  USDC_BTC:
   { id: 224,
     last: '6437.65329245',
     lowestAsk: '6436.73575054',
     highestBid: '6425.68259132',
     percentChange: '0.00744080',
     baseVolume: '1193053.18913982',
     quoteVolume: '185.43611063',
     isFrozen: '0',
     high24hr: '6499.09114231',
     low24hr: '6370.00000000' },
...

Retrieves summary information for each currency pair listed on the exchange. Fields include:

Field Description
id Id of the currency pair.
last Execution price for the most recent trade for this pair.
lowestAsk Lowest current purchase price for this asset.
highestBid Highest current sale price for this asset.
percentChange Price change percentage.
baseVolume Base units traded in the last 24 hours.
quoteVolume Quoted units traded in the last 24 hours.
isFrozen Indicates if this market is currently trading or not.
high24hr The highest execution price for this pair within the last 24 hours.
low24hr The lowest execution price for this pair within the last 24 hours.

return24hVolume

curl "https://poloniex.com/public?command=return24hVolume"

Example output:

{ BTC_LTC: { BTC: '38.13504038', LTC: '4662.34229096' },
  BTC_MAID: { BTC: '10.38010322', MAID: '359919.71515255' },
...
  USDC_BTC: { USDC: '481389.13175764', BTC: '74.73988488' },
  USDC_ETH: { USDC: '72302.27016210', ETH: '357.72884034' },
  totalBTC: '2340.96441558',
  totalETH: '2771.63218462',
  totalUSDC: '681255.56961992' }

Returns the 24-hour volume for all markets as well as totals for primary currencies.

Primary currencies include BTC, ETH, USDT, USDC and show the total amount of those tokens that have traded within the last 24 hours.

returnOrderBook

curl "https://poloniex.com/public?command=returnOrderBook&currencyPair=BTC_ETH&depth=10"

Example output for a selected market:

{ asks: 
   [ [ '0.03142500', 16.5322 ],
     [ '0.03143140', 0.14561998 ],
     [ '0.03144000', 149.2466 ],
...
     [ '0.03175915', 3.95025486 ],
     [ '0.03176634', 0.01579061 ] ],
  bids: 
   [ [ '0.03141658', 4.75222193 ],
     [ '0.03141644', 0.05252027 ],
     [ '0.03141608', 0.20943191 ],
...
     [ '0.03129457', 0.01861854 ],
     [ '0.03128648', 0.47593681 ] ],
  isFrozen: '0',
  seq: 595100792 }

Example output for all markets:

{ BTC_ETH: 
   { asks: 
      [ [ '0.03143500', 46.84591041 ],
        [ '0.03144000', 100.086388 ],
        [ '0.03144865', 6.01683252 ],
...
        [ '0.03132669', 0.01619218 ] ],
     isFrozen: '0',
     seq: 130962406 },
  BTC_LTC: 
   { asks: 
      [ [ '0.00812000', 6.82726987 ],
        [ '0.00812253', 6.6911383 ],
        [ '0.00812500', 84.1323 ],
...
        [ '1.06900000', 0.0162 ],
        [ '1.06800000', 0.0162 ],
        [ '1.06700000', 0.0162 ] ],
     isFrozen: '0',
     seq: 51055117 } }

Returns the order book for a given market, as well as a sequence number used by websockets for synchronization of book updates and an indicator specifying whether the market is frozen. You may set currencyPair to "all" to get the order books of all markets.

Request Parameter Description
currencyPair A string that defines the market, "USDT_BTC" for example. Use "all" for all markets.
depth (optional) Default depth is 50. Max depth is 100.
Field Description
asks An array of price aggregated offers in the book ordered from low to high price.
bids An array of price aggregated bids in the book ordered from high to low price.
isFrozen Indicates if trading the market is currently disabled or not.
seq An always-incrementing sequence number for this market.

returnTradeHistory (public)

curl "https://poloniex.com/public?command=returnTradeHistory&currencyPair=BTC_ETH"
curl "https://poloniex.com/public?command=returnTradeHistory&currencyPair=BTC_ETH&start=1410158341&end=1410499372"

Example output:

[ { globalTradeID: 394604821,
    tradeID: 45205037,
    date: '2018-10-22 15:03:57',
    type: 'sell',
    rate: '0.03143485',
    amount: '0.00009034',
    total: '0.00000283' },
  { globalTradeID: 394604809,
    tradeID: 45205036,
    date: '2018-10-22 15:03:47',
    type: 'buy',
    rate: '0.03143485',
    amount: '0.00770177',
    total: '0.00024210' },
...
  { globalTradeID: 394603147,
    tradeID: 45204939,
    date: '2018-10-22 14:31:59',
    type: 'sell',
    rate: '0.03139500',
    amount: '0.00041216',
    total: '0.00001293' },
  { globalTradeID: 394603133,
    tradeID: 45204938,
    date: '2018-10-22 14:31:41',
    type: 'sell',
    rate: '0.03140030',
    amount: '2.42099000',
    total: '0.07601981' } ]

Returns the past 200 trades for a given market, or up to 1,000 trades between a range specified in UNIX timestamps by the "start" and "end" GET parameters. Fields include:

Field Description
globalTradeID The globally unique ID associated with this trade.
tradeID The ID unique only to this currency pair associated with this trade.
date The UTC date and time of the trade execution.
type Designates this trade as a buy or a sell from the side of the taker.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The number of units transacted in this trade.
total The total price in base units for this trade.

returnChartData

curl "https://poloniex.com/public?command=returnChartData&currencyPair=BTC_XMR&start=1546300800&end=1546646400&period=14400"

Example output:

[ { date: 1539864000,
    high: 0.03149999,
    low: 0.031,
    open: 0.03144307,
    close: 0.03124064,
    volume: 64.36480422,
    quoteVolume: 2055.56810329,
    weightedAverage: 0.03131241 },
  { date: 1539878400,
    high: 0.03129379,
    low: 0.03095999,
    open: 0.03124064,
    close: 0.03108499,
    volume: 50.21821153,
    quoteVolume: 1615.31999527,
    weightedAverage: 0.0310887 },
...
  { date: 1540195200,
    high: 0.03160347,
    low: 0.03140002,
    open: 0.031455,
    close: 0.03151499,
    volume: 21.44394862,
    quoteVolume: 681.30276558,
    weightedAverage: 0.03147491 },
  { date: 1540209600,
    high: 0.03153475,
    low: 0.031265,
    open: 0.03151497,
    close: 0.03141781,
    volume: 39.82606009,
    quoteVolume: 1268.53159161,
    weightedAverage: 0.0313954 } ]

Returns candlestick chart data. Required GET parameters are "currencyPair", "period" (candlestick period in seconds; valid values are 300, 900, 1800, 7200, 14400, and 86400), "start", and "end". "Start" and "end" are given in UNIX timestamp format and used to specify the date range for the data returned. Fields include:

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.
period Candlestick period in seconds. Valid values are 300, 900, 1800, 7200, 14400, and 86400.
start The start of the window in seconds since the unix epoch.
end The end of the window in seconds since the unix epoch.

Output Fields

Field Description
date The UTC date for this candle in miliseconds since the Unix epoch.
high The highest price for this asset within this candle.
low The lowest price for this asset within this candle.
open The price for this asset at the start of the candle.
close The price for this asset at the end of the candle.
volume The total amount of this asset transacted within this candle.
quoteVolume The total amount of base currency transacted for this asset within this candle.
weightedAverage The average price paid for this asset within this candle.

returnCurrencies

curl "https://poloniex.com/public?command=returnCurrencies"

Example output:

{ '1CR': 
   { id: 1,
     name: '1CRedit',
     txFee: '0.01000000',
     minConf: 10000,
     depositAddress: null,
     disabled: 1,
     delisted: 1,
     frozen: 0 },
  ABY: 
   { id: 2,
     name: 'ArtByte',
     txFee: '0.01000000',
     minConf: 10000,
     depositAddress: null,
     disabled: 1,
     delisted: 1,
     frozen: 0 },
...
  ZEC: 
   { id: 286,
     name: 'Zcash',
     txFee: '0.00100000',
     minConf: 8,
     depositAddress: null,
     disabled: 0,
     delisted: 0,
     frozen: 0 },
  ZRX: 
   { id: 293,
     name: '0x',
     txFee: '5.00000000',
     minConf: 30,
     depositAddress: null,
     disabled: 0,
     delisted: 0,
     frozen: 0 } }

Returns information about currencies. Fields include:

Field Description
name Name of the currency.
txFee The network fee necessary to withdraw this currency.
minConf The minimum number of blocks necessary before a deposit can be credited to an account.
depositAddress If available, the deposit address for this currency.
disabled Designates whether (1) or not (0) deposits and withdrawals are disabled.
delisted Designates whether (1) or not (0) this currency has been delisted from the exchange.
frozen Designates whether (1) or not (0) trading for this currency is disabled for trading.

If the currency lists a deposit address, deposits to that address must be accompanied by a deposit message unique to your account. See the Balances, Deposits & Withdrawals page for more information.

returnLoanOrders

curl "https://poloniex.com/public?command=returnLoanOrders&currency=BTC"

Example output:

{ offers: 
   [ { rate: '0.00005900',
       amount: '0.01961918',
       rangeMin: 2,
       rangeMax: 2 },
     { rate: '0.00006000',
       amount: '62.24928418',
       rangeMin: 2,
       rangeMax: 2 },
...
     { rate: '0.00007037',
       amount: '0.03083815',
       rangeMin: 2,
       rangeMax: 2 } ],
  demands: 
   [ { rate: '0.02000000',
       amount: '0.00100014',
       rangeMin: 2,
       rangeMax: 2 },
...
     { rate: '0.00001000',
       amount: '0.04190154',
       rangeMin: 2,
       rangeMax: 2 } ] }

Returns the list of loan offers and demands for a given currency, specified by the "currency" GET parameter. Fields include:

Field Description
rate The interest rate in percentage per day charged for this loan.
amount The total number of units available at this rate and within this range.
rangeMin The lowest duration in days offered by the loans within this group.
rangeMax The highest duration in days offered by the loans within this group.

Private HTTP API Methods

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

All calls to the trading API are sent via HTTP using POST parameters to https://poloniex.com/tradingApi and must contain the following headers:

Additionally, all queries must include a "nonce" POST parameter. The nonce parameter is an integer which must always be greater than the previous nonce used and does not need to increase by one. Using the epoch in milliseconds is an easy choice here but be careful about time synchronization if using the same API key across multiple servers.

All responses from the trading API are in JSON format. In the event of an error, the response will always be of the following format:

{ "error": "<error message>" }

When placing orders there are currently the following minimum order sizes according to the quote currency.

Quote Minimum Total Order
BTC 0.0001
USD (any) 1
TRX 100
BNB 0.06

There are several methods accepted by the trading API, each of which is specified by the "command" POST parameter:

returnBalances

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnBalances&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnBalances&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ '1CR': '0.00000000',
  ABY: '0.00000000',
  AC: '0.00000000',
...
  YIN: '0.00000000',
  ZEC: '0.02380926',
  ZRX: '0.00000000' }

Returns all of your balances available for trade after having deducted all open orders.

returnCompleteBalances

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnCompleteBalances&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnCompleteBalances&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ '1CR':
   { available: '0.00000000',
     onOrders: '0.00000000',
     btcValue: '0.00000000' },
  ABY:
   { available: '0.00000000',
     onOrders: '0.00000000',
     btcValue: '0.00000000' },
  AC:
   { available: '0.00000000',
     onOrders: '0.00000000',
     btcValue: '0.00000000' },
...
  YIN:
   { available: '0.00000000',
     onOrders: '0.00000000',
     btcValue: '0.00000000' },
  ZEC:
   { available: '0.02380926',
     onOrders: '0.00000000',
     btcValue: '0.00044059' },
  ZRX:
   { available: '0.00000000',
     onOrders: '0.00000000',
     btcValue: '0.00000000' } }

Returns all of your balances, including available balance, balance on orders, and the estimated BTC value of your balance. By default, this call is limited to your exchange account; set the "account" POST parameter to "all" to include your margin and lending accounts.

Please note that this call will not return balances for your futures account. Please refer to https://futures-docs.poloniex.com/ for information on how to access your futures balance.

Field Description
available Number of tokens not reserved in orders.
onOrders Number of tokens in open orders.
btcValue The BTC value of this token's balance.

returnDepositAddresses

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnDepositAddresses&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnDepositAddresses&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ BCH: '1FhCkdKeMGa621mCpAtFYzeVfUBnHbooLj',
  BTC: '131rdg5Rzn6BFufnnQaHhVa5ZtRU1J2EZR',
...
  XMR: '4JUdGzvrMFDWrUUwY3toJATSeNwjn54LkCnKBPRzDuhzi5vSepHfUckJNxRL2gjkNrSqtCoRUrEDAgRwsQvVCjZbRxGLC7uLNMGQ693YeY',
  ZEC: 't1MHktAs4DMjMWqKiji4czLYD1rGNczGeFV' }

Returns all of your deposit addresses.

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

generateNewAddress

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=generateNewAddress&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=generateNewAddress&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ success: 1,
  response: '0xa6f0dacc33c7f63e137e0106ed71cc20b4b931af' }

Generates a new deposit address for the currency specified by the "currency" POST parameter. Only one address per currency per day may be generated, and a new address may not be generated before the previously-generated one has been used.

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

Input Fields

Field Description
currency The currency to use for the deposit address.

Output Field

Field Description
success Denotes the success or failure of the operation.
response The newly created address.

returnDepositsWithdrawals

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnDepositsWithdrawals&start=1539954535&end=1540314535&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnDepositsWithdrawals&start=1539954535&end=1540314535&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ deposits:
   [ { depositNumber: 7397520,
       currency: 'BTC',
       address: '131rdg5Rzn6BFufnnQaHhVa5ZtRU1J2EZR',
       amount: '0.06830697',
       confirmations: 1,
       txid: '3a4b9b2404f6e6fb556c3e1d46a9752f5e70a93ac1718605c992b80aacd8bd1d',
       timestamp: 1506005439,
       status: 'COMPLETE' },
     { depositNumber: 7397521,
       currency: 'BCH',
       address: '1FhCkdKeMGa621mCpAtFYzeVfUBnHbooLj',
       amount: '10.00000000',
       confirmations: 5,
       txid: 'eb2e0914105b02fbe6e17913d74b4e5950c1ba122eb71afdfc49e2c58b272456',
       timestamp: 1508436102,
       status: 'COMPLETE' },
...
     { depositNumber: 7397519,
       currency: 'BTC',
       address: '131rdg5Rzn6BFufnnQaHhVa5ZtRU1J2EZR',
       amount: '1.49998357',
       confirmations: 1,
       txid: 'b05bdec7430a56b5a5ed34af4a31a54859dda9b7c88a5586bc5d6540cdfbfc7a',
       timestamp: 1537304458,
       status: 'COMPLETE' },
     { depositNumber: 7397518,
       currency: 'ETH',
       address: '0xb7e033598cb94ef5a35349316d3a2e4f95f308da',
       amount: '29.99825341',
       confirmations: 53,
       txid: '0xf7e7eeb44edcad14c0f90a5fffb1cbb4b80e8f9652124a0838f6906ca939ccd2',
       timestamp: 1537305507,
       status: 'COMPLETE' } ],
  withdrawals:
   [ { withdrawalNumber: 7397527,
       currency: 'ETC',
       address: '0x26419a62055af459d2cd69bb7392f5100b75e304',
       amount: '13.19951600',
       fee: '0.01000000',
       timestamp: 1506010932,
       status: 'COMPLETE: 0x423346392f82ac16e8c2604f2a604b7b2382d0e9d8030f673821f8de4b5f5a30',
       ipAddress: '1.2.3.4',
       paymentID: null
     },
     { withdrawalNumber: 7704882,
       currency: 'ETH',
       address: '0x00c90335F92FfcD26C8c915c79d7aB424454B7c7',
       amount: '0.01318826',
       fee: '0.00500000',
       timestamp: 1507908127,
       status: 'COMPLETE: 0xbd4da74e1a0b81c21d056c6f58a5b306de85d21ddf89992693b812bb117eace4',
       ipAddress: '1.2.3.4',
       paymentID: null
     },
...
     { withdrawalNumber: 11967216,
       currency: 'ZRX',
       address: '0x3B2E298b401D1E11cE6ee82b54792CA435CE81eC',
       amount: '1535.58403218',
       fee: '5.00000000',
       timestamp: 1538419390,
       status: 'COMPLETE: 0x52f9e37f29944f20b624df4d7a0ea5a09173e6ea048d49fb05c29585f1d74032',
       ipAddress: '1.2.3.4',
       paymentID: null
     },
     { withdrawalNumber: 12017755,
       currency: 'STR',
       address: 'GACNWS3R4FJUMHLDNMFGUQZD33FBRE4IODAPK5G7AVX7S2VEJRT2XXHQ',
       amount: '7281.99772728',
       fee: '0.00001000',
       timestamp: 1539709673,
       status: 'COMPLETE: 2d27ae26fa9c70d6709e27ac94d4ce2fde19b3986926e9f3bfcf3e2d68354ec5',
       ipAddress: '1.2.3.4',
       paymentID: 'MEMOTEXT'
     } ],
  adjustments:
   [ { currency: 'STR',
       amount: '2.38291827',
       timestamp: 1538419390,
       status: 'COMPLETE',
       category: 'adjustment',
       adjustmentTitle: 'Stellar Inflation',
       adjustmentDesc: 'Your Stellar inflation reward for the week of Jun 11, 2019.',
       adjustmentHelp:
        'https://poloniex.freshdesk.com/support/solutions/articles/1000278072-stellar-inflation-what-is-it-and-other-frequently-asked-questions'
      }
    ]
}

Returns your adjustment, deposit, and withdrawal history within a range window, specified by the "start" and "end" POST parameters, both of which should be given as UNIX timestamps. Note that only adjustments intended to be shown in the UI will be returned

Input Fields

Field Description
start The start date of the range window in UNIX timestamp format.
end The end date of the range window in UNIX timestamp format.

Adjustment Output Fields

Field Description
currency The currency of this adjustment.
amount The total value of this adjustment.
timestamp The timestamp in UNIX timestamp format of when this adjustment was credited.
status The status of the adjustment (only COMPLETE).
category Always adjustment.
adjustmentTitle The type of adjustment.
adjustmentDesc A human-readable description of the adjustment.
adjustmentHelp A help center link to describe the adjustment.

Deposit Output Fields

Field Description
depositNumber The unique Poloniex specific deposit ID for this deposit.
currency The currency of this deposit.
address The address to which this deposit was sent.
amount The total value of the deposit. (network fees will not be included in this)
confirmations The total number of confirmations for this deposit.
txid The blockchain transaction ID of this deposit.
timestamp The timestamp in UNIX timestamp format of when this deposit was first noticed.
status The current status of this deposit. (either PENDING or COMPLETE)

Withdrawal Output Fields

Field Description
withdrawalNumber The unique Poloniex specific withdrawal ID for this withdrawal.
currency The currency of this withdrawal.
address The address to which the withdrawal was made.
amount The total amount withdrawn including the fee.
fee The fee paid to the exchange for this withdrawal.
timestamp The Unix timestamp of the withdrawal.
status The status of the withdrawal (one of PENDING, AWAITING APPROVAL, COMPLETE or COMPLETE ERROR) and optionally the transaction ID of the withdrawal.
ipAddress The IP address which initiated the withdrawal request.
paymentID The paymentID specified for this withdrawal. If none were specified, the field will be null.

returnOpenOrders

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnOpenOrders&currencyPair=BTC_ETH&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnOpenOrders&currencyPair=BTC_ETH&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a single market:

[ { orderNumber: '514514894224',
    type: 'buy',
    rate: '0.00001000',
    startingAmount: '100.00000000',
    amount: '100.00000000',
    total: '0.00100000',
    date: '2018-10-23 17:38:53',
    margin: 0 },
  { orderNumber: '514515104014',
    type: 'buy',
    rate: '0.00002000',
    startingAmount: '100.00000000',
    amount: '100.00000000',
    total: '0.00200000',
    date: '2018-10-23 17:39:46',
    margin: 0 },
...
  { orderNumber: '514515150967',
    type: 'buy',
    rate: '0.00003000',
    startingAmount: '100.00000000',
    amount: '100.00000000',
    total: '0.00300000',
    date: '2018-10-23 17:39:55',
    margin: 0 } ]

Example output for all markets:

{ BTC_ARDR: [],
  BTC_BAT: [],
  BTC_BCH: [],
...
  BTC_ETH:
   [ { orderNumber: '514515459658',
       type: 'buy',
       rate: '0.00001000',
       startingAmount: '100.00000000',
       amount: '100.00000000',
       total: '0.00100000',
       date: '2018-10-23 17:41:15',
       margin: 0 },
...
     { orderNumber: '514515389728',
       type: 'buy',
       rate: '0.00003000',
       startingAmount: '100.00000000',
       amount: '100.00000000',
       total: '0.00300000',
       date: '2018-10-23 17:40:55',
       margin: 0 } ],
  BTC_FCT: [],
...
  BTC_SC:
   [ { orderNumber: '26422960740',
       type: 'buy',
       rate: '0.00000001',
       startingAmount: '100000.00000000',
       amount: '100000.00000000',
       total: '0.00100000',
       date: '2018-10-23 17:41:49',
       margin: 0 },
     { orderNumber: '26422963737',
       type: 'buy',
       rate: '0.00000002',
       startingAmount: '100000.00000000',
       amount: '100000.00000000',
       total: '0.00200000',
       date: '2018-10-23 17:42:00',
       margin: 0 } ],
  BTC_SNT: [] }

Returns your open orders for a given market, specified by the "currencyPair" POST parameter, e.g. "BTC_ETH". Set "currencyPair" to "all" to return open orders for all markets. Note that the "startingAmount" is not the order placement amount but it is the starting amount of the open order in the book, which excludes any amount that was immediately filled before the order is posted on the book.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example. Use "all" for all markets.

Output Fields

Field Description
orderNumber The number uniquely identifying this order.
type Denotes this order as a 'buy' or 'sell'.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
startingAmount The size of the original order.
amount The amount left to fill in this order.
total The total cost of this order in base units.
date The UTC date of order creation.
margin Denotes this as a margin order (1) or not. (0)

returnTradeHistory (private)

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnTradeHistory&currencyPair=BTC_ETH&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnTradeHistory&currencyPair=BTC_ETH&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a single market:

[ { globalTradeID: 394700861,
    tradeID: 45210354,
    date: '2018-10-23 18:01:58',
    type: 'buy',
    rate: '0.03117266',
    amount: '0.00000652',
    total: '0.00000020',
    orderNumber: '104768235093' },
  { globalTradeID: 394700815,
    tradeID: 45210353,
    date: '2018-10-23 18:01:08',
    type: 'buy',
    rate: '0.03116000',
    amount: '5.93292717',
    total: '0.18487001',
    orderNumber: '104768235092' },
...
  { globalTradeID: 394699047,
    tradeID: 45210256,
    date: '2018-10-23 17:30:32',
    type: 'sell',
    rate: '0.03114533',
    amount: '0.01934000',
    total: '0.00060235',
    orderNumber: '104768235091' },
  { globalTradeID: 394698946,
    tradeID: 45210255,
    date: '2018-10-23 17:28:55',
    type: 'sell',
    rate: '0.03114126',
    amount: '0.00018753',
    total: '0.00000583',
    orderNumber: '104768235090' } ]

Example output for all markets:

{ BTC_BCH:
   [ { globalTradeID: 394131412,
       tradeID: '5455033',
       date: '2018-10-16 18:05:17',
       rate: '0.06935244',
       amount: '1.40308443',
       total: '0.09730732',
       fee: '0.00100000',
       orderNumber: '104768235081',
       type: 'sell',
       category: 'exchange' },
...
     { globalTradeID: 394126818,
       tradeID: '5455007',
       date: '2018-10-16 16:55:34',
       rate: '0.06935244',
       amount: '0.00155709',
       total: '0.00010798',
       fee: '0.00200000',
       orderNumber: '104768179137',
       type: 'sell',
       category: 'exchange' } ],
  BTC_STR:
   [ { globalTradeID: 394127362,
       tradeID: '13536351',
       date: '2018-10-16 17:03:43',
       rate: '0.00003432',
       amount: '3696.05342780',
       total: '0.12684855',
       fee: '0.00200000',
       orderNumber: '96238912841',
       type: 'buy',
       category: 'exchange' },
...
     { globalTradeID: 394127361,
       tradeID: '13536350',
       date: '2018-10-16 17:03:43',
       rate: '0.00003432',
       amount: '3600.53748129',
       total: '0.12357044',
       fee: '0.00200000',
       orderNumber: '96238912841',
       type: 'buy',
       category: 'exchange' } ] }

Returns your trade history for a given market, specified by the "currencyPair" POST parameter. You may specify "all" as the currencyPair to receive your trade history for all markets. You may optionally specify a range via "start" and/or "end" POST parameters, given in UNIX timestamp format; if you do not specify a range, it will be limited to one day. You may optionally limit the number of entries returned using the "limit" parameter, up to a maximum of 10,000. If the "limit" parameter is not specified, no more than 500 entries will be returned.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example. Use "all" for all markets.

Output Fields

Field Description
globalTradeID The globally unique identifier of this trade.
tradeID The identifier of this trade unique only within this trading pair.
date The UTC date at which this trade executed.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The amount transacted in this trade.
total The total cost in base units of this trade.
fee The fee paid for this trade.
orderNumber The order number to which this trade is associated.
type Denotes a 'buy' or a 'sell' execution.
category Denotes if this was a standard or margin exchange.

returnOrderTrades

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnOrderTrades&orderNumber=96238912841&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnOrderTrades&orderNumber=9623891284&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

[ { globalTradeID: 394127362,
    tradeID: 13536351,
    currencyPair: 'BTC_STR',
    type: 'buy',
    rate: '0.00003432',
    amount: '3696.05342780',
    total: '0.12684855',
    fee: '0.00200000',
    date: '2018-10-16 17:03:43' },
  { globalTradeID: 394127361,
    tradeID: 13536350,
    currencyPair: 'BTC_STR',
    type: 'buy',
    rate: '0.00003432',
    amount: '3600.53748129',
    total: '0.12357044',
    fee: '0.00200000',
    date: '2018-10-16 17:03:43' } ]

Returns all trades involving a given order, specified by the "orderNumber" POST parameter. If no trades for the order have occurred or you specify an order that does not belong to you, you will receive an error. See the documentation here for how to use the information from returnOrderTrades and returnOrderStatus to determine various status information about an order.

Input Fields

Field Description
orderNumber The order number whose trades you wish to query.

Output Fields

Field Description
globalTradeID The globally unique identifier of this trade.
tradeID The identifier of this trade unique only within this trading pair.
currencyPair A string that defines the market, "USDT_BTC" for example.
type Denotes a 'buy' or a 'sell' execution.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The amount transacted in this trade.
total The total cost in base units of this trade.
fee The fee paid for this trade.
date The UTC date at which this trade executed.

returnOrderStatus

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnOrderStatus&orderNumber=96238912841&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnOrderStatus&orderNumber=9623891284&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ result:
   { '6071071':
      { status: 'Open',
        rate: '0.40000000',
        amount: '1.00000000',
        currencyPair: 'BTC_ETH',
        date: '2018-10-17 17:04:50',
        total: '0.40000000',
        type: 'buy',
        startingAmount: '1.00000' } },
  success: 1 }

Returns the status of a given order, specified by the "orderNumber" POST parameter. If the specified orderNumber is not open, or it is not yours, you will receive an error.

Note that returnOrderStatus, in concert with returnOrderTrades, can be used to determine various status information about an order:

Input Fields

Field Description
orderNumber The identifier of the order to return.

Output Field

Field Description
status Designates this order's fill state.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The amount of tokens remaining unfilled in this order.
currencyPair A string that defines the market, "USDT_BTC" for example.
date The UTC date this order was created.
total The total value of this order.
type Designates a buy or a sell order.
startingAmount The original order's amount.

buy

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=buy&currencyPair=BTC_ETH&rate=0.01&amount=1&clientOrderId=12345&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=buy&currencyPair=BTC_ETH&rate=0.01&amount=1&clientOrderId=12345&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ orderNumber: '514845991795',
  resultingTrades:
   [ { amount: '3.0',
       date: '2018-10-25 23:03:21',
       rate: '0.0002',
       total: '0.0006',
       tradeID: '251834',
       type: 'buy' } ],
  fee: '0.01000000',
  clientOrderId: '12345'
  currencyPair: 'BTC_ETH' }

Places a limit buy order in a given market. Required POST parameters are "currencyPair", "rate", and "amount". If successful, the method will return the order number.

You may optionally set "fillOrKill", "immediateOrCancel", "postOnly" to 1. A fill-or-kill order will either fill in its entirety or be completely aborted. An immediate-or-cancel order can be partially or completely filled, but any portion of the order that cannot be filled immediately will be canceled rather than left on the order book. A post-only order will only be placed if no portion of it fills immediately; this guarantees you will never pay the taker fee on any part of the order that fills.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The total amount offered in this buy order.
fillOrKill (optional) Set to "1" if this order should either fill in its entirety or be completely aborted.
immediateOrCancel (optional) Set to "1" if this order can be partially or completely filled, but any portion of the order that cannot be filled immediately will be canceled.
postOnly (optional) Set to "1" if you want this buy order to only be placed if no portion of it fills immediately.
clientOrderId (optional) 64-bit Integer value used for tracking order across http responses and "o", "n" & "t" web socket messages. Must be unique across all open orders for each account.

Output Fields

Field Description
orderNumber The identification number of the newly created order.
resultingTrades An array of the trades that were executed, if any, on order placement.
amount The amount of tokens remaining unfilled in this order.
date The UTC date this order was created.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
total The total value of this order.
tradeID The identifier for this trade.
type Designates a buy or a sell order. (always 'buy' in this case)
fee The fee multiplier for this trade.
currencyPair A string that defines the market, "USDT_BTC" for example.
clientOrderId (optional) User specified 64-bit integer identifier.
tokenFee The total fee paid, if any, using a token to pay fees.
tokenFeeCurrency The currency used to pay fees if any token fee was used.

sell

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=sell&currencyPair=BTC_ETH&rate=10.0&amount=1&clientOrderId=12345&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=sell&currencyPair=BTC_ETH&rate=10.0&amount=1&clientOrderId=12345&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ orderNumber: '514845991926',
  resultingTrades:
   [ { amount: '1.0',
       date: '2018-10-25 23:03:21',
       rate: '10.0',
       total: '10.0',
       tradeID: '251869',
       type: 'sell' } ],
  fee: '0.01000000',
  clientOrderId: '12345',
  currencyPair: 'BTC_ETH' }

Places a sell order in a given market. Required POST parameters are "currencyPair", "rate", and "amount". If successful, the method will return the order number.

You may optionally set "fillOrKill", "immediateOrCancel", "postOnly" to 1. A fill-or-kill order will either fill in its entirety or be completely aborted. An immediate-or-cancel order can be partially or completely filled, but any portion of the order that cannot be filled immediately will be canceled rather than left on the order book. A post-only order will only be placed if no portion of it fills immediately; this guarantees you will never pay the taker fee on any part of the order that fills.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The total amount offered in this sell order.
fillOrKill (optional) Set to "1" if this order should either fill in its entirety or be completely aborted.
immediateOrCancel (optional) Set to "1" if this order can be partially or completely filled, but any portion of the order that cannot be filled immediately will be canceled.
postOnly (optional) Set to "1" if you want this sell order to only be placed if no portion of it fills immediately.
clientOrderId (optional) 64-bit Integer value used for tracking order across "o", "n" & "t" web socket messages. Must be unique across all open orders for each account.

Output Fields

Field Description
orderNumber The identification number of the newly created order.
resultingTrades An array of the trades that were executed, if any, on order placement.
amount The amount of tokens remaining unfilled in this order.
date The UTC date this order was created.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
total The total value of this order.
tradeID The identifier for this trade.
type Designates a buy or a sell order. (always 'sell' in this case)
fee The fee multiplier for this trade.
currencyPair A string that defines the market, "USDT_BTC" for example.
clientOrderId (optional) User specified 64-bit integer identifier.
tokenFee The total fee paid, if any, using a token to pay fees.
tokenFeeCurrency The currency used to pay fees if any token fee was used.

cancelOrder

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=cancelOrder&orderNumber=514845991795&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=cancelOrder&orderNumber=514845991795&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ success: 1,
  amount: '50.00000000',
  clientOrderId: '12345',
  message: 'Order #514845991795 canceled.' }

Cancels an order you have placed in a given market. Requires exactly one of "orderNumber" or "clientOrderId" POST parameters. If successful, the method will return a success of 1.

Input Fields

Field Description
orderNumber (Optional) The identity number of the order to be canceled.
clientOrderId (Optional) User specified 64-bit integer identifier.

Output Fields

Field Description
success A boolean indication of the success or failure of this operation.
amount The remaning unfilled amount that was canceled in this operation.
message A human readable description of the result of the action.
clientOrderId (optional) If clientOrderId exists on the open order it will be returned in the cancelOrder response.

cancelAllOrders

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=cancelAllOrders&nonce=1559587794133" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=cancelAllOrders&nonce=1559587794133" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2f2caf61...a3bc7818ced466e8f" \
     https://poloniex.com/tradingApi

Example output:

{ "success": 1,
  "message": "Orders canceled",
  "orderNumbers": [
    503749,
    888321,
    7315825,
    7316824 ] }

Cancels all open orders in a given market or, if no market is provided, all open orders in all markets. Optional POST parameter is "currencyPair". If successful, the method will return a success of 1 along with a json array of orderNumbers representing the orders that were canceled. Please note that cancelAllOrders can only be called 1 time per 2 minutes.

Input Fields

Field Description
currencyPair (optional) A string that defines the market, "USDT_BTC" for example.

Output

Field Description
success A boolean indication of the success or failure of this operation.
message A human readable description of the result of the action.
orderNumbers array of orderNumbers representing the orders that were canceled.

moveOrder

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=moveOrder&orderNumber=514851026755&rate=0.00015&clientOrderId=12345&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=moveOrder&orderNumber=514851026755&rate=0.00015&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ success: 1,
  orderNumber: '514851232549',
  clientOrderId: '12345',
  resultingTrades: { BTC_ETH: [] } }

Cancels an order and places a new one of the same type in a single atomic transaction, meaning either both operations will succeed or both will fail. Required POST parameters are "orderNumber" and "rate"; you may optionally specify "amount" if you wish to change the amount of the new order. "postOnly" or "immediateOrCancel" may be specified for exchange orders, but will have no effect on margin orders.

Input Fields

Field Description
orderNumber The identity number of the order to be canceled.
clientOrderId (optional) User specified 64-bit integer identifier to be associated with the new order being placed. Must be unique across all open orders for each account.

Output Fields

Field Description
success A boolean indication of the success or failure of this operation.
amount The remaning unfilled amount that was canceled in this operation.
message A human readable description of the result of the action.
clientOrderId (optional) User specified 64-bit integer identifier associated with the new order placed.

withdraw

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=withdraw&currency=ETH&amount=2&address=0x84a90e21d9d02e30ddcea56d618aa75ba90331ff&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=withdraw&currency=ETH&amount=2&address=0x84a90e21d9d02e30ddcea56d618aa75ba90331ff&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ response: 'Withdrew 2.0 ETH.',
  withdrawalNumber: 12085427 }

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. Required POST parameters are "currency", "amount", and "address".

For withdrawals which support payment IDs, (such as XMR) you may optionally specify "paymentId".

For currencies where there are multiple networks to choose from (currently only USDT) you need to specify the param: currencyToWithdrawAs. For USDT use currencyToWithdrawAs=USDTTRON or USDTETH. The default for USDT is Omni which is used if currencyToWithdrawAs is not specified.

Output Fields

Field Description
response String response that shows a summary of the withdrawal.
withdrawalNumber Withdrawal reference ID that can be matched with results from the returnDepositsWithdrawals API to poll for status updates.

returnFeeInfo

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnFeeInfo&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnFeeInfo&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ makerFee: '0.00100000',
  takerFee: '0.00200000',
  marginMakerFee: '0.00100000',
  marginTakerFee: '0.00200000',
  thirtyDayVolume: '106.08463302',
  nextTier: 500000 }

If you are enrolled in the maker-taker fee schedule, returns your current trading fees and trailing 30-day volume in BTC. This information is updated once every 24 hours.

Output Fields

Field Description
makerFee The fee you pay when your order executes after having not matched when it was initially placed.
takerFee The fee you pay when your order matches an existing offer.
marginMakerFee The fee you pay when your margin order executes after having not matched when it was initially placed.
marginTakerFee The fee you pay when your margin order matches an existing offer.
thirtyDayVolume The total trading volume for your account.
nextTier The volume necessary to reach the next fee tier.

returnAvailableAccountBalances

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnAvailableAccountBalances&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnAvailableAccountBalances&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

 { exchange:
   { BTC: '0.10000000',
     EOS: '5.18012931',
     ETC: '3.39980734',
     SC: '120.00000000',
     USDC: '23.79999938',
     ZEC: '0.02380926' },
  margin:
   { BTC: '0.50000000' },
  lending:
   { BTC: '0.14804126',
     ETH: '2.69148073',
     LTC: '1.75862721',
     XMR: '5.25780982' } }

Returns your balances sorted by account. You may optionally specify the "account" POST parameter if you wish to fetch only the balances of one account. Please note that balances in your margin account may not be accessible if you have any open margin positions or orders.

Please note that this call will not return balances for your futures account. Please refer to https://futures-docs.poloniex.com/ for information on how to access your futures balance.

Output Fields

Field Description
exchange The assets available to trade in your exchange account.
margin The assets available to trade in your margin account.
lending The assets available to trade in your lending account.

returnTradableBalances

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnTradableBalances&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnTradableBalances&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ BTC_BTS: { BTC: '1.25000000', BTS: '81930.25407233' },
  BTC_CLAM: { BTC: '1.25000000', CLAM: '4266.69596390' },
  BTC_DASH: { BTC: '1.25000000', DASH: '51.93926104' },
  BTC_DOGE: { BTC: '1.25000000', DOGE: '2155172.41379310' },
  BTC_LTC: { BTC: '1.25000000', LTC: '154.46087826' },
  BTC_MAID: { BTC: '1.25000000', MAID: '38236.28007965' },
  BTC_STR: { BTC: '1.25000000', STR: '34014.47559076' },
  BTC_XMR: { BTC: '1.25000000', XMR: '76.27023112' },
  BTC_XRP: { BTC: '1.25000000', XRP: '17385.96302541' },
  BTC_ETH: { BTC: '1.25000000', ETH: '39.96803109' },
  BTC_FCT: { BTC: '1.25000000', FCT: '1720.79314097' } }

Returns your current tradable balances for each currency in each market for which margin trading is enabled. Please note that these balances may vary continually with market conditions.

transferBalance

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=transferBalance&currency=BTC&amount=0.5&fromAccount=lending&toAccount=exchange&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=transferBalance&currency=BTC&amount=0.5&fromAccount=lending&toAccount=exchange&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ success: 1,
  message: 'Transferred 0.50000000 BTC from lending to exchange account.' }

Transfers funds from one account to another (e.g. from your exchange account to your margin account). Required POST parameters are "currency", "amount", "fromAccount", and "toAccount".

Please note that transfers which include the futures account must include an exchange or lending account.

Input Fields

Field Description
currency The currency to transfer.
amount The amount of assets to transfer in this request.
fromAccount The account from which this value should be moved (exchange, margin, lending, or futures).
toAccount The account to which this value should be moved (exchange, margin, lending, or futures).

Output Fields

Field Description
success The success or failure message for this transfer.
message A human readable message summarizing this transfer.

returnMarginAccountSummary

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnMarginAccountSummary&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnMarginAccountSummary&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ totalValue: '0.09999999',
  pl: '0.00000000',
  lendingFees: '0.00000000',
  netValue: '0.09999999',
  totalBorrowedValue: '0.02534580',
  currentMargin: '3.94542646' }

Returns a summary of your entire margin account. This is the same information you will find in the Margin Account section of the (Margin Trading page)[https://poloniex.com/support/aboutMarginTrading/], under the Markets list.

Output Fields

Field Description
totalValue Total margin value in BTC.
pl Unrealized profit and loss in BTC.
lendingFees Unrealized lending fees in BTC.
netValue Net value in BTC.
totalBorrowedValue Total borrowed value in BTC.
currentMargin The current margin ratio.

marginBuy

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=marginBuy&currencyPair=BTC_ETH&rate=0.0035&amount=20&clientOrderId=12345&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=marginBuy&currencyPair=BTC_ETH&rate=0.0035&amount=20&clientOrderId=12345&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ orderNumber: '515007818806',
  resultingTrades: [],
  message: 'Margin order placed.',
  clientOrderId: '12345' }

Places a margin buy order in a given market. Required POST parameters are "currencyPair", "rate", and "amount". You may optionally specify a maximum lending rate using the "lendingRate" parameter. (the default "lendingRate" value is 0.02 which stands for 2% per day) Note that "rate" * "amount" must be > 0.02 when creating or expanding a market. If successful, the method will return the order number and any trades immediately resulting from your order.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
lendingRate The interest rate you are willing to accept per day. (default is 0.02 which stands for 2% per day)
amount The amount to buy.
clientOrderId (optional) 64-bit Integer value used for tracking order across http responses as well as "o", "n" & "t" web socket messages. Must be unique across all open orders for each account.

Output Fields

Field Description
orderNumber The newly created order number.
resultingTrades An array of trades immediately filled by this offer, if any.
message A human-readable message summarizing the activity.
clientOrderId (optional) Client specified 64-bit integer identifier.

marginSell

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=marginSell&currencyPair=BTC_ETH&rate=0.0035&amount=20&clientOrderId=12345&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=marginSell&currencyPair=BTC_ETH&rate=0.0035&amount=20&clientOrderId=12345&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ orderNumber: '515007818812',
  resultingTrades: [],
  message: 'Margin order placed.'
  clientOrderId: '12345' }

Places a margin sell order in a given market. Required POST parameters are "currencyPair", "rate", and "amount". You may optionally specify a maximum lending rate using the "lendingRate" parameter. (the default "lendingRate" value is 0.02 which stands for 2% per day) Note that "rate" * "amount" must be > 0.02 when creating or expanding a market. If successful, the method will return the order number and any trades immediately resulting from your order.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
lendingRate The interest rate you are willing to accept per day. (default is 0.02 which stands for 2% per day)
amount The amount of currency to sell.
clientOrderId (optional) 64 bit Integer value used for tracking order across http responses as well as "o", "n" & "t" web socket messages. Must be unique across all open orders for each account.

Output Fields

Field Description
orderNumber The newly created order number.
resultingTrades An array of trades immediately filled by this offer, if any.
message A human-readable message summarizing the activity.
clientOrderId (optional) 64 bit Client specified integer identifier.

getMarginPosition

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=getMarginPosition&currencyPair=BTC_ETH&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=getMarginPosition&currencyPair=BTC_ETH&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ amount: '40.94717831',
  total: '-0.09671314',
  basePrice: '0.00236190',
  liquidationPrice: -1,
  pl: '-0.00058655',
  lendingFees: '-0.00000038',
  type: 'long' }

Returns information about your margin position in a given market, specified by the "currencyPair" POST parameter. You may set "currencyPair" to "all" if you wish to fetch all of your margin positions at once. If you have no margin position in the specified market, "type" will be set to "none". "liquidationPrice" is an estimate, and does not necessarily represent the price at which an actual forced liquidation will occur. If you have no liquidation price, the value will be -1.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.

Output Fields

Field Description
amount The net amount of the market's currency you have bought or sold. If your position is short, this value will be negative.
total The total amount of the currency in your position.
basePrice The approximate price at which you would need to close your position in order to break even.
liquidationPrice The estimated highest bid (if your position is long) or lowest ask (if it is short) at which a forced liquidation will occur.
pl Estimated profit or loss you would incur if your position were closed. Includes lending fees already paid.
lendingFees The estimated value of outstanding fees on currently-open loans.
type Denotes the overall position in this market as either "long" (buy heavy) or "short". (sell heavy)

closeMarginPosition

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=closeMarginPosition&currencyPair=BTC_ETH&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=closeMarginPosition&currencyPair=BTC_ETH&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a market with an open position:

{ success: 1,
  message: 'Successfully closed margin position.',
  resultingTrades:
   { BTC_XMR:
      [ { amount: '7.09215901',
          date: '2015-05-10 22:38:49',
          rate: '0.00235337',
          total: '0.01669047',
          tradeID: '1213346',
          type: 'sell' },
        { amount: '24.00289920',
          date: '2015-05-10 22:38:49',
          rate: '0.00235321',
          total: '0.05648386',
          tradeID: '1213347',
          type: 'sell' } ] } }

Example output for a market with no open position:

{ success: 1,
  message: 'You do not have an open position in this market.',
  resultingTrades: [] }

Closes your margin position in a given market (specified by the "currencyPair" POST parameter) using a market order. This call will also return success if you do not have an open position in the specified market.

Input Fields

Field Description
currencyPair A string that defines the market, "USDT_BTC" for example.

Output Fields

Field Description
success Denotes whether a success (1) or a failure (0) of this operation.
message A human-readable message summarizing the activity.
resultingTrades An array of any trades that have executed as a result of closing this position.

createLoanOffer

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=createLoanOffer&currency=BTC&amount=0.1&duration=2&autoRenew=0&lendingRate=0.015&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=createLoanOffer&currency=BTC&amount=0.1&duration=2&autoRenew=0&lendingRate=0.015&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a market with an open position:

{ success: 1,
  message: 'Loan order placed.',
  orderID: 1002013188 }

Creates a loan offer for a given currency. Required POST parameters are "currency", "amount", "duration", "autoRenew" (0 or 1), and "lendingRate".

Input Fields

Field Description
currency Denotes the currency for this loan offer.
amount The total amount of currency offered.
duration The maximum duration of this loan in days. (from 2 to 60, inclusive)
autoRenew Denotes if this offer should be reinstated with the same settings after having been taken.

Output Fields

Field Description
success Denotes whether a success (1) or a failure (0) of this operation.
message A human-readable message summarizing the activity.
orderID The identification number of the newly created loan offer.

cancelLoanOffer

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=cancelLoanOffer&orderNumber=1002013188&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=cancelLoanOffer&orderNumber=1002013188&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a market with an open position:

{ success: 1,
  message: 'Loan offer canceled.',
  amount: '0.10000000' }

Cancels a loan offer specified by the "orderNumber" POST parameter.

Input Fields

Field Description
orderNumber The identification number of the offer to be canceled.

Output Fields

Field Description
success Denotes whether a success (1) or a failure (0) of this operation.
message A human-readable message summarizing the activity.
amount The amount of the offer that was canceled.

returnOpenLoanOffers

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnOpenLoanOffers&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnOpenLoanOffers&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output for a market with an open position:

{ BTC:
   [ { id: 1002015083,
       rate: '0.01500000',
       amount: '0.10000000',
       duration: 2,
       autoRenew: 0,
       date: '2018-10-26 20:26:46' } ] }

Returns your open loan offers for each currency.

Output Fields

Field Description
id The identification number of this offer.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The total amount offered for this loan.
duration The maximum number of days offered for this loan.
autoRenew Denotes if this offer will be reinstated with the same settings after having been taken.
date The UTC date at which this loan offer was created.

returnActiveLoans

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnActiveLoans&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnActiveLoans&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ provided:
   [ { id: 75073,
       currency: 'LTC',
       rate: '0.00020000',
       amount: '0.72234880',
       range: 2,
       autoRenew: 0,
       date: '2018-05-10 23:45:05',
       fees: '0.00006000' },
     { id: 74961,
       currency: 'LTC',
       rate: '0.00002000',
       amount: '4.43860711',
       range: 2,
       autoRenew: 0,
       date: '2018-05-10 23:45:05',
       fees: '0.00006000' } ],
  used:
   [ { id: 75238,
       currency: 'BTC',
       rate: '0.00020000',
       amount: '0.04843834',
       range: 2,
       date: '2018-05-10 23:51:12',
       fees: '-0.00000001' } ] }

Returns your active loans for each currency.

Output Field Description
provided An array of the loans currently provided. (see below for subfield descriptions)
used An array of the loans currently being used. (see below for subfield descriptions)
Subfield Description
id The identifier number of the loan.
currency The currency of the loan.
rate The price. Units are market quote currency. Eg USDT_BTC market, the value of this field would be around 10,000. Naturally this will be dated quickly but should give the idea.
amount The size of this loan.
range The duration of the loan in number of days.
autoRenew Specifies if the loan will be automatically renewed on close.
date The UTC date of the start of the loan.
fees The fees paid for this loan so far.

returnLendingHistory

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=returnLendingHistory&start=1483228800&end=1483315200&limit=100&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=returnLendingHistory&start=1483228800&end=1483315200&limit=100&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

[ { id: 246300115,
    currency: 'BTC',
    rate: '0.00013890',
    amount: '0.33714830',
    duration: '0.00090000',
    interest: '0.00000005',
    fee: '0.00000000',
    earned: '0.00000005',
    open: '2017-01-01 23:41:37',
    close: '2017-01-01 23:42:51' },
  { id: 246294775,
    currency: 'BTC',
    rate: '0.00013890',
    amount: '0.03764586',
    duration: '0.00150000',
    interest: '0.00000001',
    fee: '0.00000000',
    earned: '0.00000001',
    open: '2017-01-01 23:36:32',
    close: '2017-01-01 23:38:45' },
...
  { id: 245670087,
    currency: 'BTC',
    rate: '0.00014000',
    amount: '0.10038365',
    duration: '0.00010000',
    interest: '0.00000001',
    fee: '0.00000000',
    earned: '0.00000001',
    open: '2017-01-01 03:18:25',
    close: '2017-01-01 03:18:32' },
  { id: 245645491,
    currency: 'XMR',
    rate: '0.00002191',
    amount: '0.00006579',
    duration: '0.00560000',
    interest: '0.00000001',
    fee: '0.00000000',
    earned: '0.00000001',
    open: '2017-01-01 02:17:09',
    close: '2017-01-01 02:25:10' } ]

Returns your lending history within a time range specified by the "start" and "end" POST parameters as UNIX timestamps. "limit" may also be specified to limit the number of rows returned.

Input Field Description
start The date in Unix timestamp format of the start of the window.
end The date in Unix timestamp format of the end of the window.
Output Field Description
id The loan identifier number.
currency The currency of the loan.
rate The loan's rate in percentage points per day.
amount The total amount loaned.
duration The duration in days of the loan.
interest The interest earned in the loan's currency.
fee The fee paid in the loan's currency.
earned The earnings in the loan's currency after subtracting the fee.
open The UTC date the loan started. (when the loan offer was taken)
close The UTC date the loan completed. (when the loan was closed)

toggleAutoRenew

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "command=toggleAutoRenew&orderNumber=1002013188&nonce=154264078495300" | \
openssl sha512 -hmac $API_SECRET

curl -X POST \
     -d "command=toggleAutoRenew&orderNumber=1002013188&nonce=154264078495300" \
     -H "Key: 7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J" \
     -H "Sign: 2a7849ecf...ae71161c8e9a364e21d9de9" \
     https://poloniex.com/tradingApi

Example output:

{ success: 1, message: 0 }

Toggles the autoRenew setting on an active loan, specified by the "orderNumber" POST parameter. If successful, "message" will indicate the new autoRenew setting.

Input Field Description
orderNumber The identifier of the order you want to toggle.
Output Field Description
success A "1" indicates a successful toggle.
message On success, the new value of the auto renew flag.

Websocket API

# Install your favorite websocket command line tool.
# Our examples use https://github.com/hashrocket/ws
# which can be installed with this command:

go get -u github.com/hashrocket/ws

Websockets can be read by any standard websocket library. Data is organized into channels to which an API client may subscribe.

Requests and Responses

There are two type of requests supported; subscribe and unsubscribe. The requests are for a specific channel. For non-book requests, the first response is always an acknowledgement of the request. All channel updates are of the following format

[<channel>, <sequence id>, <update data...>]

<sequence id> is a number increasing by one with each update and is unique within its channel. The sequence-id is always null for non-book channels.

Subscribing and Unsubscribing

# Public channels
ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": 1002}

# Private channels
# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "nonce=154264078495300" | openssl sha512 -hmac $API_SECRET
ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": 1000, "sign": "e832d65f...8a522df8", "key": "7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J", "payload": "nonce=154264078495300"}

To receive updates from a channel you must subscribe to it. To subscribe to a public channel (all except the account notifications channel), determine its channel ID (provided with the description of each channel, and summarized here), send a JSON message in the following format:

{ "command": "subscribe", "channel": "<channel id>" }

To subscribe to a private channel, the parameters described in the authentication section are required in the subscription message. Just like the trading API, an integer nonce must be chosen that is greater than the previous nonce used; for this purpose the current epoch time in milliseconds is a reasonable choice. As each API key has its own nonce tracking, using a different key for each client process can greatly simplify nonce management. If the chosen nonce is 1234, provide a "payload" parameter consisting of nonce=1234, a "key" parameter with your API key, and a "sign" parameter with the HMAC-SHA512 signature of the payload signed by your secret:

{ "command": "subscribe", "channel": "<channel id>", "key": "<your API key>", "payload": "nonce=<epoch ms>", "sign": "<hmac_sha512(secret).update("nonce=<epoch ms>").hexdigest()>" }

In all cases the first message will be an acknowledgement of the subscription:

[<channel id>, 1]

To unsubscribe, send an unsubscribe message with the channel ID:

{ "command": "unsubscribe", "channel": <channel id> }

Channel Descriptions

The following <channel ids> are supported:

Channel Type Name
1000 Private Account Notifications (Beta)
1002 Public Ticker Data
1003 Public 24 Hour Exchange Volume
1010 Public Heartbeat
<currency pair> Public Price Aggregated Book

Additionally, as described below, each market has its own aggregated book channel.

Account Notifications (Beta)

# Note: set the nonce to the current milliseconds. For example: date +%s00000
echo -n "nonce=154264078495300" | openssl sha512 -hmac $API_SECRET
ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": 1000, "sign": "e832d65f...8a522df8", "key": "7BCLAZQZ-HKLK9K6U-3MP1RNV9-2LS1L33J", "payload": "nonce=154264078495300"}
< [1010]
< [1000,"",[["n",225,807230187,0,"1000.00000000","0.10000000","2018-11-07 16:42:42"],["b",267,"e","-0.10000000"]]]
< [1010]
< [1000,"",[["o",807230187,"0.00000000", "f"],["b",267,"e","0.10000000"]]]

The account notifications channel (id 1000) provides real-time updates of trade and balance changes on your account. You can (and should) use it to track your account's trading activity (instead of relying on repeated calls to the trading API). It is an authenticated websocket endpoint, so subscribing to it requires the parameters discussed in the subscribing section:

{ "command": "subscribe", "channel": "1000", "key": "<your API key>", "payload": "nonce=<epoch ms>", "sign": "<hmac_sha512(secret).update("nonce=<epoch ms>").hexdigest()>" }

The first message is acknowledgement of the subscription.

[1000, 1]

Subsequent messages represent updates to your account. In general, a message consists of a combination of updates of different types. Each update is an array of data, where the first element is a character denoting the type of the update, and subsequent elements are various parameters:

[ 1000, null, [ ["b", DATA_1, DATA_2, DATA_3], ["n", DATA_1, DATA_2, DATA_3, DATA_4, DATA_5, DATA_6] ] ]

A given message may contain multiple updates, multiple types of updates, and multiple updates of the same type. There is no ordering guarantee of update types within a single message. Effectively, each message is a record of all of the changes to your account induced by a single action. There are four types of updates, as described below:

Order type Amount Interpretation
f > 0.00000000 partially filled order
f = 0.00000000 completely filled order
c > 0.00000000 partially cancelled order
c = 0.00000000 completely cancelled order
s > 0.00000000 partially filled self-trade
s = 0.00000000 completely filled self-trade

Thus, an o update representing a partially filled limit order with a new amount of 1.5 and a clientOrderId of 12345 will look like: ["o", 6083059, "1.50000000", "f", "12345"].

As mentioned above, a single logical action may cause a message with multiple updates. For instance, placing a limit order to buy ETH using BTC, which is immediately partially fulfilled, will cause an update with 5 parts: a p message with the newly placed pending order for the BTC_ETH market, a b update with a positive ETH balance (the ETH that was immediately bought), a b update with a negative BTC balance update (the BTC removed from the user's funds to pay for the ETH), a t update representing the trade in which the order was partially fulfilled and then the remaining amount becomes open, and an n update with the new limit order for the rest of the requested ETH.

Note that many actions do not have explicit notification types, but rather are represented by the underlying trade and balance changes:

There are currently no notifications of transfers between wallets initiated via the transfers page or the transferBalance trading API call.

Ticker Data

ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": 1002}
< [1002,1]
< [1002,null,[149,"219.42870877","219.85995997","219.00000016","0.01830508","1617829.38863451","7334.31837942",0,"224.44803729","214.87902002"]]
< [1002,null,[150,"0.00000098","0.00000099","0.00000098","0.01030927","23.24910068","23685243.40788439",0,"0.00000100","0.00000096"]]
< [1002,null,[162,"0.00627869","0.00630521","0.00627608","0.01665689","17.99294312","2849.74975814",0,"0.00640264","0.00615185"]]

Subscribe to ticker updates for all currency pairs.

Subscription example

{ "command": "subscribe", "channel": 1002 }

The first message is acknowledgement of the subscription.

[<id>, 1]

Subsequent messages are ticker updates.

[ <id>, null, [ <currency pair id>, "<last trade price>", "<lowest ask>", "<highest bid>", "<percent change in last 24 hours>", "<base currency volume in last 24 hours>", "<quote currency volume in last 24 hours>", <is frozen>, "<highest trade price in last 24 hours>", "<lowest trade price in last 24 hours>" ], ... ]

For example:

[ 1002, null, [ 149, "382.98901522", "381.99755898", "379.41296309", "-0.04312950", "14969820.94951828", "38859.58435407", 0, "412.25844455", "364.56122072" ] ]

The <currency pair id> is from the currency pair ID list.

24 Hour Exchange Volume

ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": 1003}
< [1003,null,["2018-11-07 16:26",5804,{"BTC":"3418.409","ETH":"2645.921","USDT":"10832502.689","USDC":"1578020.908"}]]

Subscribe to 24 hour exchange volume statistics. Updates are sent every 20 seconds.

Subscription example for exchange volume

{ "command": "subscribe", "channel": 1003 }

The first response is acknowledgement of subscription

[<channel id>, 1]

For example:

[1003, 1]

Subsequent responses are exchange volume update sent every 20 seconds. Base currencies are BTC, ETH, USDT and USDC.

[ <channel id>, null, [ "<time as YYYY-MM-DD HH:SS>", "<number of users online>", { "<base currency>": "<24 hours volume>", ... } ] ]

For example

[ 1003, null, [ "2018-09-30 21:33", 8592, { "BTC": "6482.518", "ETH": "1315.332", "USDT": "42935638.731", "USDC": "76034823.390" } ] ]

Heartbeats

# Heartbeats (1010) will arrive automatically - you can see them simply by connecting
ws wss://api2.poloniex.com
< [1010]
< [1010]
< [1010]

When no messages have been sent out for one second, the server will send a heartbeat message as follows. Absence of heartbeats indicates a protocol or networking issue and the client application is expected to close the socket and try again.

[1010]

Price Aggregated Book

ws wss://api2.poloniex.com
> {"command": "subscribe", "channel": "BTC_ETH"}
< [148,599758718,[["i",{"currencyPair":"BTC_ETH","orderBook":[{"0.03342499":"0.98174196","0.03343000":"45.80780000", ... "0.00000001":"1462262.00000000"}]}]]]
< [148,599758719,[["o",1,"0.03315496","0.00000000"],["o",1,"0.03315498","99.33100000"]]]
< [148,599758720,[["o",0,"0.03383499","0.00000000"]]]
< [148,599758721,[["o",0,"0.03342499","0.24289338"]]]

Example output:

  { currencyPair: 'BTC_ETH',
    orderBook:
     [ { '0.03119500': '8.87619723',
         '0.03120486': '2.15539849',
         '0.03120500': '50.78890000',
...
         '3777.70000000': '0.00100000',
         '4999.00000000': '0.05000000',
         '5000.00000000': '0.20000000' },
       { '0.03118500': '50.78940000',
         '0.03117855': '10.55121501',
         '0.03117841': '6.20027213',
...
         '0.00000003': '20000.00000000',
         '0.00000002': '670207.00000000',
         '0.00000001': '1462262.00000000' } ] } ]

Subscribe to price aggregated depth of book by currency pair. Response includes an initial book snapshot, book modifications, and trades. Book modification updates with 0 quantity should be treated as removal of the price level. Note that the updates are price aggregated and do not contain individual orders.

Subscription example for BTC_BTS pair (id is 14). You can either subscribe using the currency pair ID or name. Currency pair IDs are listed in the currency pair ID list.

{ "command":"subscribe", "channel": 14 }

Or

{ "command": "subscribe", "channel": "BTC_BTS" }

The first response is the initial dump of the book. NOTE: An "i" message can occur after the initial subscription under certain circumstances. When this occurs the client is required to reset the state of the price aggregated book.

[ <channel id>, <sequence number>, [ [ "i", { "currencyPair": "<currency pair name>", "orderBook": [ { "<lowest ask price>": "<lowest ask size>", "<next ask price>": "<next ask size>", ... }, { "<highest bid price>": "<highest bid size>", "<next bid price>": "<next bid size>", ... } ] } ] ] ]

For example:

[ 14, 8767, [ [ "i", { "currencyPair": "BTC_BTS", "orderBook": [ { "0.00001853": "2537.5637", "0.00001854": "1567238.172367" }, { "0.00001841": "3645.3647", "0.00001840": "1637.3647" } ] } ] ] ]

Subsequent responses are updates to the book and trades

[ <channel id>, <sequence number>, [ ["o", <1 for bid 0 for ask>, "<price>", "<size>"], ["o", <1 for bid 0 for ask>, "<price>", "<size>"], ["t", "<trade id>", <1 for buy 0 for sell>, "<price>", "<size>", <timestamp>] ] ... ]

For example

[ 14, 8768, [ ["o", 1, "0.00001823", "5534.6474"], ["o", 0, "0.00001824", "6575.464"], ["t", "42706057", 1, "0.05567134", "0.00181421", 1522877119] ] ]

Reference

Currencies

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

ID Currency
1 1CR
2 ABY
3 AC
4 ACH
5 ADN
6 AEON
7 AERO
8 AIR
275 AMP
420 ANK
9 APH
258 ARCH
285 ARDR
313 ATOM
10 AUR
344 AVA
11 AXIS
369 BAL
12 BALLS
390 BAND
13 BANK
302 BAT
14 BBL
15 BBR
16 BCC
292 BCH
308 BCHABC
339 BCHBEAR
340 BCHBULL
360 BCHC
309 BCHSV
17 BCN
269 BCY
18 BDC
19 BDG
322 BEAR
20 BELA
273 BITCNY
21 BITS
272 BITUSD
22 BLK
23 BLOCK
24 BLU
406 BLY
343 BNB
25 BNS
305 BNT
26 BONES
27 BOST
341 BSVBEAR
342 BSVBULL
28 BTC
29 BTCD
30 BTCS
31 BTM
32 BTS
320 BTT
323 BULL
33 BURN
34 BURST
324 BUSD
346 BVOL
372 BZRX
35 C2
36 CACH
37 CAI
38 CC
39 CCN
40 CGA
41 CHA
358 CHR
42 CINNI
43 CLAM
44 CNL
45 CNMT
46 CNOTE
47 COMM
361 COMP
48 CON
49 CORG
424 CORN
427 CREAM
422 CRT
401 CRV
50 CRYPT
51 CURE
364 CUSDT
294 CVC
52 CYC
325 DAI
279 DAO
60 DASH
277 DCR
379 DEC
397 DEXT
53 DGB
391 DIA
54 DICE
55 DIEM
56 DIME
57 DIS
404 DMG
58 DNS
59 DOGE
392 DOS
400 DOT
61 DRKC
62 DRM
63 DSH
64 DVK
65 EAC
66 EBT
67 ECC
68 EFL
69 EMC2
70 EMO
71 ENC
298 EOS
355 EOSBEAR
354 EOSBULL
283 ETC
267 ETH
333 ETHBEAR
319 ETHBNT
334 ETHBULL
72 eTOK
73 EXE
270 EXP
74 FAC
75 FCN
271 FCT
413 FCT2
76 FIBRE
77 FLAP
78 FLDC
254 FLO
79 FLT
307 FOAM
80 FOX
81 FRAC
82 FRK
83 FRQ
426 FSW
410 FUND
84 FVZ
351 FXC
85 FZ
86 FZN
93 GAME
87 GAP
296 GAS
88 GDN
388 GEEQ
89 GEMZ
90 GEO
91 GIAR
92 GLB
94 GML
291 GNO
95 GNS
290 GNT
96 GOLD
97 GPC
98 GPUC
261 GRC
99 GRCX
314 GRIN
100 GRS
101 GUE
102 H2O
103 HIRO
104 HOT
105 HUC
260 HUGE
106 HVC
107 HYP
108 HZ
347 IBVOL
109 IFC
265 INDEX
263 IOC
110 ITC
111 IXC
421 JFI
112 JLH
113 JPC
345 JST
114 JUG
115 KDC
116 KEY
301 KNC
382 KTON
280 LBC
117 LC
118 LCL
119 LEAF
366 LEND
120 LGC
327 LINK
357 LINKBEAR
356 LINKBULL
121 LOL
303 LOOM
122 LOVE
312 LPT
123 LQD
368 LRC
278 LSK
124 LTBC
125 LTC
126 LTCX
127 MAID
306 MANA
128 MAST
338 MATIC
129 MAX
398 MCB
130 MCN
359 MDT
131 MEC
132 METH
328 MKR
133 MIL
134 MIN
135 MINT
136 MMC
137 MMNXT
138 MMXIV
139 MNTA
140 MON
141 MRC
142 MRS
374 MTA
144 MTS
145 MUN
146 MYR
147 MZC
148 N5X
149 NAS
150 NAUT
151 NAV
152 NBT
348 NEO
153 NEOS
395 NEST
154 NL
155 NMC
310 NMR
156 NOBL
157 NOTE
158 NOXT
159 NRS
160 NSR
161 NTX
288 NXC
162 NXT
163 NXTI
403 OCEAN
405 OM
295 OMG
143 OMNI
164 OPAL
407 OPT
165 PAND
289 PASC
166 PAWN
329 PAX
419 PEARL
399 PERX
167 PIGGY
168 PINK
380 PLT
169 PLX
170 PMC
311 POLY
171 POT
172 PPC
173 PRC
408 PRQ
174 PRT
175 PTS
176 Q2C
177 QBK
178 QCN
179 QORA
180 QTL
304 QTUM
274 RADS
181 RBY
182 RDD
367 REN
284 REP
183 RIC
383 RING
411 RSR
184 RZR
423 SAL
282 SBD
396 SBREE
268 SC
185 SDC
186 SHIBE
187 SHOPX
188 SILK
189 SJCX
190 SLR
191 SMC
300 SNT
335 SNX
192 SOC
193 SPA
194 SQL
195 SRCC
196 SRG
197 SSD
371 STAKE
281 STEEM
297 STORJ
350 STPT
198 STR
287 STRAT
199 SUM
200 SUN
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
206 TOR
386 TRADE
394 TRB
378 TRUMPLOSE
377 TRUMPWIN
207 TRUST
315 TRX
330 TRXBEAR
331 TRXBULL
208 TWE
209 UIS
210 ULTC
381 UMA
211 UNITY
212 URO
299 USDC
213 USDE
337 USDJ
214 USDT
215 UTC
216 UTIL
217 UVC
218 VIA
219 VOOT
276 VOX
220 VRC
221 VTC
222 WC
223 WDC
224 WIKI
321 WIN
412 WNXM
225 WOLF
363 WRX
226 X13
227 XAI
228 XAP
229 XBC
230 XC
231 XCH
232 XCN
233 XCP
234 XCR
235 XDN
402 XDOT
236 XDP
256 XEM
365 XFIL
237 XHC
238 XLB
239 XMG
240 XMR
241 XPB
242 XPM
243 XRP
353 XRPBEAR
352 XRPBULL
244 XSI
245 XST
246 XSV
336 XTZ
247 XUSD
253 XVC
248 XXC
249 YACC
250 YANG
251 YC
375 YFI
415 YFII
417 YFL
252 YIN
393 ZAP
286 ZEC
293 ZRX

Currency Pair IDs

This is a list of IDs for currency pairs. They serve as the channel IDs for price aggregated books, and are used in returned data from a few other websocket channels as well.

Id Currency Pair
336 BNB_BTC
177 BTC_ARDR
253 BTC_ATOM
324 BTC_AVA
210 BTC_BAT
189 BTC_BCH
236 BTC_BCHABC
238 BTC_BCHSV
232 BTC_BNT
14 BTC_BTS
15 BTC_BURST
333 BTC_CHR
194 BTC_CVC
24 BTC_DASH
162 BTC_DCR
408 BTC_DMG
27 BTC_DOGE
201 BTC_EOS
171 BTC_ETC
148 BTC_ETH
266 BTC_ETHBNT
382 BTC_EXE
414 BTC_FCT2
246 BTC_FOAM
432 BTC_FUND
317 BTC_FXC
198 BTC_GAS
185 BTC_GNT
43 BTC_HUC
207 BTC_KNC
351 BTC_LEND
275 BTC_LINK
213 BTC_LOOM
250 BTC_LPT
355 BTC_LRC
163 BTC_LSK
50 BTC_LTC
229 BTC_MANA
295 BTC_MATIC
342 BTC_MDT
302 BTC_MKR
309 BTC_NEO
64 BTC_NMC
248 BTC_NMR
69 BTC_NXT
196 BTC_OMG
249 BTC_POLY
75 BTC_PPC
221 BTC_QTUM
353 BTC_REN
174 BTC_REP
170 BTC_SBD
150 BTC_SC
204 BTC_SNT
290 BTC_SNX
168 BTC_STEEM
200 BTC_STORJ
369 BTC_STPT
89 BTC_STR
182 BTC_STRAT
379 BTC_SWAP
312 BTC_SWFTC
403 BTC_SWINGBY
364 BTC_SXP
92 BTC_SYS
263 BTC_TRX
359 BTC_WRX
108 BTC_XCP
112 BTC_XEM
348 BTC_XFIL
114 BTC_XMR
117 BTC_XRP
277 BTC_XTZ
178 BTC_ZEC
192 BTC_ZRX
340 BUSD_BNB
341 BUSD_BTC
306 DAI_BTC
307 DAI_ETH
358 ETH_BAL
211 ETH_BAT
190 ETH_BCH
347 ETH_COMP
202 ETH_EOS
172 ETH_ETC
179 ETH_ZEC
193 ETH_ZRX
284 PAX_BTC
285 PAX_ETH
326 TRX_AVA
339 TRX_BNB
271 TRX_BTT
335 TRX_CHR
410 TRX_DMG
267 TRX_ETH
431 TRX_FUND
319 TRX_FXC
316 TRX_JST
276 TRX_LINK
297 TRX_MATIC
344 TRX_MDT
311 TRX_NEO
422 TRX_PEARL
292 TRX_SNX
274 TRX_STEEM
371 TRX_STPT
314 TRX_SWFTC
405 TRX_SWINGBY
366 TRX_SXP
420 TRX_TAI
273 TRX_WIN
361 TRX_WRX
268 TRX_XRP
279 TRX_XTZ
254 USDC_ATOM
235 USDC_BCH
237 USDC_BCHABC
239 USDC_BCHSV
224 USDC_BTC
256 USDC_DASH
243 USDC_DOGE
257 USDC_EOS
258 USDC_ETC
225 USDC_ETH
252 USDC_GRIN
244 USDC_LTC
242 USDC_STR
264 USDC_TRX
226 USDC_USDT
241 USDC_XMR
240 USDC_XRP
245 USDC_ZEC
288 USDJ_BTC
323 USDJ_BTT
289 USDJ_TRX
423 USDT_ANK
255 USDT_ATOM
325 USDT_AVA
357 USDT_BAL
387 USDT_BAND
212 USDT_BAT
191 USDT_BCH
260 USDT_BCHABC
298 USDT_BCHBEAR
299 USDT_BCHBULL
345 USDT_BCHC
259 USDT_BCHSV
320 USDT_BCN
280 USDT_BEAR
401 USDT_BLY
337 USDT_BNB
293 USDT_BSVBEAR
294 USDT_BSVBULL
121 USDT_BTC
270 USDT_BTT
281 USDT_BULL
338 USDT_BUSD
304 USDT_BVOL
363 USDT_BZRX
334 USDT_CHR
346 USDT_COMP
427 USDT_CORN
433 USDT_CREAM
425 USDT_CRT
397 USDT_CRV
350 USDT_CUSDT
308 USDT_DAI
122 USDT_DASH
374 USDT_DEC
395 USDT_DEXT
262 USDT_DGB
389 USDT_DIA
409 USDT_DMG
216 USDT_DOGE
388 USDT_DOS
407 USDT_DOT
203 USDT_EOS
330 USDT_EOSBEAR
329 USDT_EOSBULL
173 USDT_ETC
149 USDT_ETH
300 USDT_ETHBEAR
301 USDT_ETHBULL
383 USDT_EXE
413 USDT_FCT2
429 USDT_FSW
430 USDT_FUND
318 USDT_FXC
385 USDT_GEEQ
217 USDT_GNT
261 USDT_GRIN
305 USDT_IBVOL
424 USDT_JFI
315 USDT_JST
377 USDT_KTON
352 USDT_LEND
322 USDT_LINK
332 USDT_LINKBEAR
331 USDT_LINKBULL
356 USDT_LRC
218 USDT_LSK
123 USDT_LTC
231 USDT_MANA
296 USDT_MATIC
396 USDT_MCB
343 USDT_MDT
303 USDT_MKR
367 USDT_MTA
310 USDT_NEO
400 USDT_OCEAN
399 USDT_OM
402 USDT_OPT
286 USDT_PAX
421 USDT_PEARL
392 USDT_PERX
375 USDT_PLT
406 USDT_PRQ
223 USDT_QTUM
354 USDT_REN
175 USDT_REP
378 USDT_RING
411 USDT_RSR
426 USDT_SAL
391 USDT_SBREE
219 USDT_SC
291 USDT_SNX
362 USDT_STAKE
321 USDT_STEEM
370 USDT_STPT
125 USDT_STR
434 USDT_SUN
415 USDT_SUSHI
380 USDT_SWAP
313 USDT_SWFTC
404 USDT_SWINGBY
428 USDT_SWRV
365 USDT_SXP
419 USDT_TAI
381 USDT_TEND
384 USDT_TRADE
393 USDT_TRB
373 USDT_TRUMPLOSE
372 USDT_TRUMPWIN
265 USDT_TRX
282 USDT_TRXBEAR
283 USDT_TRXBULL
376 USDT_UMA
287 USDT_USDJ
272 USDT_WIN
412 USDT_WNXM
360 USDT_WRX
349 USDT_XFIL
126 USDT_XMR
127 USDT_XRP
328 USDT_XRPBEAR
327 USDT_XRPBULL
278 USDT_XTZ
368 USDT_YFI
416 USDT_YFII
418 USDT_YFL
417 USDT_YFV
390 USDT_ZAP
180 USDT_ZEC
220 USDT_ZRX

Changelog

Recent changes and additions to the Poloniex API.

2020-09-15 M messages websocket-api

M messages added to show updates to margin positions.

2020-09-11 SUN Listing

Listing of SUN TRC20 token (SUN), and the following market(s) USDT_SUN.

2020-09-10 CREAM Listing

Listing of CREAM ERC20 token (CREAM), and the following market(s) USDT_CREAM.

2020-09-09 FUND, SWRV, FSW Listings

Listing of FUND (Unification), Swerve ERC20 token (SWRV), FalconSwap ERC20 token (FSW) and the following market(s) USDT_FUND, TRX_FUND, BTC_FUND, USDT_SWRV, USDT_FSW.

2020-09-04 PEARL, ANK, JFI, CRT, SAL, CORN Listings

Listing of Pearl Finance TRC20 token (PEARL), AlphaLink TRC20 token (ANK), JackPool.finance TRC20 token (JFI), Carrot Finance TRC20 token (CRT), Salmon TRC20 token (SAL), Corn TRC20 token (CORN), and the following market(s) USDT_PEARL, TRX_PEARL, USDT_ANK, USDT_JFI, USDT_CRT, USDT_SAL, USDT_CORN.

2020-09-02 YFV, YFL, TAI Listings

Listing of YFValue ERC20 token (YFV), SYF Link ERC20 token (YFL), tBridge TRC20 token (TAI), and the following market(s) USDT_YFV, USDT_YFL, USDT_TAI, TRX_TAI.

2020-09-01 FCT2, SUSHI, YFII Listings

Listing of Firmachain ERC20 token (FCT2), SushiSwap ERC20 token (SUSHI), DFI.money ERC20 token (YFII), and the following market(s) USDT_FCT2, BTC_FCT2, USDT_SUSHI, USDT_YFII.

2020-08-26 RSR and WNXM Listing

Listing of Reserve Rights ERC20 token, Wrapped NXM ERC20 token (WNXM) and the following market(s) USDT_RSR, USDT_WNXM.

2020-08-25 DMG Listing

Listing of DMM: Governance ERC20 token (DMG) and the following market(s) USDT_DMG, BTC_DMG, TRX_DMG.

2020-08-21 OPT, SWINGBY, and PRQ Listings

Listing of OpenPredict ERC20 token (OPT), Swingby BEP-2 token (SWINGBY), PARSIQ ERC20 token (PRQ) and the following market(s) USDT_OPT, USDT_SWINGBY, BTC_SWINGBY, TRX_SWINGBY, USDT_PRQ.

2020-08-18 BLY Listing

Listing of Blocery ERC20 token (BLY) and the following market(s) USDT_BLY.

2020-08-18 OCEAN Listing

Listing of Ocean Protocol ERC20 token (OCEAN) and the following market(s) USDT_OCEAN.

2020-08-17 OM Listing

Listing of Mantra DAO ERC20 token (OM) and the following market(s) USDT_OM.

2020-08-13 DOT, DEXT, MCB, and CRV Listings

Listing of Polkadot IOU, DexTools ERC20 token (DEXT), MCDex ERC20 token (MCB), Curve Finance ERC20 token (CRV) and the following market(s) USDT_DOT, USDT_DEXT, USDT_MCB, USDT_CRV.

2020-08-12 SBREE, PERX, and TRB Listings

Listing of Coinbreeder DAO (SBREE), PeerEx Network (PERX), and Tellor (TRB) and the following markets USDT_SBREE, USDT_PERX, and USDT_TRB.

2020-08-11 DOS, DIA, ZAP Listings

Listing of DOS Network (DOS), DIA (DIA), and Zap (ZAP) and the following markets USDT_DOS, USDT_DIA, and USDT_ZAP.

2020-08-10 BAND Listing

Listing of Band Protocol (BAND) and the following market USDT_BAND.

2020-08-06 GEEQ Listing

Listing of Geeq (GEEQ) and the following market USDT_GEEQ.

2020-08-05 transferBalance update

Added support to transfer funds from/to your futures account.

2020-08-02 TRADE and EXE Listings

Listing of UniTrade (TRADE) and 8X8 Protocol (EXE) and the following markets USDT_TRADE, BTC_EXE, USDT_EXE.

2020-08-02 TEND Listing

Listing of Tendies (TEND) and the following market USDT_TEND.

2020-08-01 SWAP Listings

Listing of Trustswap (SWAP) and the following markets BTC_SWAP and USDT_SWAP.

2020-07-31 KTON and RING Listings

Listing of Darwinia Commitment Token (KTON) and Darwinia Network Native Token (RING) and the following markets USDT_KTON and USDT_RING.

2020-07-30 UMA Listing

Listing of UMA (UMA) and the following market USDT_UMA.

2020-07-27 PLT Listing

Listing of PlutusDefi (PLT) and the following market USDT_PLT.

2020-07-26 DEC Listing

Listing of Decentr (DEC) and the following market USDT_DEC.

2020-07-24 TRUMPWIN and TRUMPLOSE Listings

Listing of Trump Wins Token (TRUMPWIN) and Trump Loses Token (TRUMPLOSE) and the following markets USDT_TRUMPWIN and USDT_TRUMPLOSE.

2020-07-22 STPT Listings

Listing of Standard Tokenization Protocol (STPT) and the following markets BTC_STPT, USDT_STPT, and TRX_STPT.

2020-07-21 YFI Listing

Listing of yearn.finance (YFI) and the following market USDT_YFI.

2020-07-18 MTA Listing

Listing of Meta (MTA) and the following market USDT_MTA.

2020-07-17 SXP Listings

Listing of Swipe (SXP) and the following markets BTC_SXP, USDT_SXP, and TRX_SXP.

2020-07-13 BZRX Listing

Listing of bZx Protocol Token (BZRX) and the following market USDT_BZRX.

2020-07-09 STAKE Listing

Listing of xDAI Stake (STAKE) and the following market USDT_STAKE.

2020-06-30 Withdraw API changes

Added output fields to the withdraw API command to make it easier to reference later.

2020-06-25 WRX Listings

Listing of WazirX (WRX) and the following markets BTC_WRX, USDT_WRX, and TRX_WRX.

2020-06-24 LEND, REN, LRC, and BAL Listings

Listing of Aave (Lend), Ren (REN), Loopring (LRC), and Balancer (BAL) tokens and the following markets BTC_LEND, USDT_LEND, BTC_REN, USDT_REN, BTC_LRC, USDT_LRC, USDT_BAL, and ETH_BAL.

2020-06-19 Delisting Markets for BTC_GRIN, ETH_REP and USDT_NXT

Delisted the following markets BTC_GRIN, ETH_REP and USDT_NXT.

2020-06-19 XFIL and CUSDT Listings

Listing of Filecoin IOU pre-mainnet trading (XFIL) and Compound USDT (CUSDT) and the following markets BTC_XFIL, USDT_XFIL, and USDT_CUSDT.

2020-06-17 COMP Listings

Listing of Compound Governance Token (COMP) and the following markets USDT_COMP and ETH_COMP.

2020-06-12 BCHC Listing

Listing of BitCherry (BCHC) and the following market USDT_BCHC.

2020-06-10 Token Fee API changes

Added output fields to the buy and sell API commands to support fee payments using tokens.

2020-06-05 BNB, BUSD, MDT Listings

Listing of Binance Coin (BNB), Binance USD (BUSD), and Measurable Data Token (MDT) and the following markets BNB_BTC, USDT_BNB, USDT_BUSD, TRX_BNB, BUSD_BNB, BUSD_BTC, BTC_MDT, USDT_MDT, and TRX_MDT.

2020-05-22 CHR Listings

Listing of Chromia (CHR) and the following markets BTC_CHR, USDT_CHR, and TRX_CHR.

2020-05-20 Delisting Markets for BTC_BCN ad BTC_BTT

Delisted the following markets BTC_BCN and BTC_BTT.

2020-05-15 EOSBEAR, EOSBULL, LINKBEAR, LINKBULL, XRPBEAR, XRPBULL Listings

Listing of EOS, Chainlink, and Ripple 3x Long and Short leveraged tokens (EOSBEAR, EOSBULL, LINKBEAR, LINKBULL, XRPBEAR, XRPBULL) and the following markets USDT_EOSBEAR, USDT_EOSBULL, USDT_LINKBEAR, USDT_LINKBULL, USDT_XRPBEAR, and USDT_XRPBULL.

2020-05-12 AVA Listings

Listing of Travala.com (AVA) token and the following markets BTC_AVA, USDT_AVA, and TRX_AVA.

Added the following markets USDT_BCN, USDT_STEEM, USDT_LINK, and USDJ_BTT.

2020-05-08 FXC Listings

Listing of Flexacoin (FXC) and the following markets BTC_FXC, USDT_FXC, and TRX_FXC.

2020-05-07 JST Listings

Listing of Just (JST) and the following markets USDT_JST and TRX_JST.

2020-05-05 SWFTC Listings

Listing of SwftCoin (SWFTC) and the following markets BTC_SWFTC, USDT_SWFTC, and TRX_SWFTC.

2020-05-01 NEO Listings

Listing of Neo (NEO) and the following markets BTC_NEO, USDT_NEO, and TRX_NEO.

2020-04-29 DAI Listings

Listing of Dai stablecoin (DAI) and the following markets DAI_BTC, DAI_ETH, and USDT_DAI.

2020-04-23 BVOL and IBVOL Listings

Listing of Bitcoin Volatility and Inverse Bitcoin Volatility tokens (BVOL, IBVOL) and the following markets USDT_BVOL and USDT_IBVOL.

2020-04-17 MKR Listing

Listing of Maker token (MKR) and the following markets BTC_MKR and USDT_MKR.

2020-04-14 BCHBEAR, BCHBULL, ETHBEAR, ETHBULL Listings

Listing of 3x Long and Short leveraged tokens (BCHBEAR, BCHBULL, ETHBEAR, ETHBULL) and the following markets USDT_BCHBEAR, USDT_BCHBULL, USDT_ETHBEAR, and USDT_ETHBULL.

2020-04-10 MATIC Listing

Listing of Matic Network token (MATIC) and the following markets BTC_MATIC, USDT_MATIC, and TRX_MATIC.

2020-04-09 BSVBEAR and BSVBULL Listings

Listing of 3x Long and Short Bitcoin SV leveraged tokens (BSVBEAR and BSVBULL) and the following markets USDT_BSVBEAR and USDT_BSVBULL.

2020-04-02 SNX Listing

Listing of Synthetix Network Token (SNX) and the following markets BTC_SNX, USDT_SNX, and TRX_SNX.

2020-03-31 PAX and USDJ Listings

Listing of Paxos Standard (PAX) and USDJ (USDJ) tokens and the following markets USDJ_TRX, USDJ_BTC, USDT_USDJ, USDT_PAX, PAX_ETH, and PAX_BTC.

2020-03-26 BULL, BEAR, TRXBULL, TRXBEAR Listings

Listing of 3x Long and Short leveraged tokens (BULL, BEAR, TRXBULL, TRXBEAR) and the following markets USDT_BULL, USDT_BEAR, USDT_TRXBULL, and USDT_TRXBEAR.

2020-03-24 XTZ Listing

Listing of Tezos (XTZ) and the following markets BTC_XTZ, USDT_XTZ, and TRX_XTZ.

Listing of Chainlink Token (LINK) and the following markets BTC_LINK and TRX_LINK.

2020-03-05 STEEM Listing

Listing of STEEM Token (STEEM) and the following markets BTC_STEEM and TRX_STEEM.

2020-02-13 WIN Listing

Listing of WINk Token (WIN) and the following markets USDT_WIN and TRX_WIN.

2020-02-06 BTT Listing

Listing of BitTorrent Token (BTT) and the following markets BTC_BTT, USDT_BTT and TRX_BTT.

2020-01-22 Clarifications to returnOpenOrders doc

2020-01-16 ETHBNT Listing

Listing of Bancor ETH Smart Token Relay (ETHBNT) and the following market BTC_ETHBNT.

2019-12-30 Currency delistings

Delisting DigiByte (DGB), Factom (FCT), MaidSafeCoin (MAID), Omni (OMNI), Primecoin (XPM), Vertcoin (VTC) and Viacoin (VIA)

2019-11-19 Cancel order by clientOrderId

This change allows users to cancel both pending and open orders by clientOrderId.

2019-11-12 TRX Listing

Listing of Tron (TRX) and the following markets BTC_TRX, USDC_TRX and USDT_TRX.

2019-10-15 Currency delistings

Delisting Pascal (PASC), Steem (STEEM), Navcoin (NAV), GameCredits (GAME), LBRY Credits (LBC), and Clams (CLAM).

2019-08-20 Updates to clientOrderId documentation

Fixed newly introduced grammar issues for clientOrderID docs

2019-08-16 XMR base delisting

XMR as a base was delisted, along with other pairs. See tweet for details - https://twitter.com/Poloniex/status/1162061407858417664

2019-08-06 "k" and "p" account notifications

Introducing "k" (killed) and "p" (pending order) channel 1000 websocket account notifications

2019-07-29 Updates to clientOrderId documentation

State clientOrderId is 64 bit integer, and when live, must be unique per account

2019-07-24 Add clientOrderId to private http methods and websocket messages

Some endpoints now support using a client specified integer identifier which will be returned in http responses and "o", "t", "n" websocket messages.

2019-07-12 Newly listed USDC/T market IDs

Add recently listed market IDs to currency pair IDs list

2019-06-26 Add currencyToWithdrawAs to withdraw

Include the currencyToWithdrawAs parameter to the withdrawal API call (used to withdraw USDTTRON).

2019-06-13 Add adjustments to returnDepositWithdrawals

Include special adjustments (e.g. Stellar inflation credits) as part of the returnDepositWithdrawals response.

2019-06-12 Update returnTradeHistory response to reflect new max

The max number of trades that can be fetched in a single call has been reduced to 1,000.

2019-06-12 Additional fields to channel 1000 o message

Channel 1000 o message has been appended to include the orderType field at the end of the response.

2019-06-04 cancelAllOrders trading method added

This new API method allows users to cancel all open orders or all open orders by currencyPair.

2019-05-09 Additional fields to channel 1000 t message

Channel 1000 t message has been appended to include the total fee and date at the end of the response respectively.

2019-05-08 Additional fields to buy and sell response

The buy and sell response will now include currencyPair and fee multiplier.

2019-04-04 Additional fields to returnDepositsWithdrawals response.

Document inclusion of new depositNumber field for deposits and paymentID field for withdrawals in returnDepositsWithdrawals response.

2019-03-29 TLS 1.2 or greater required.

As of April 15, 2019, TLS version 1.2 or greater is required.

2019-03-28 Add minimize latency instructions.

Instructions on how to minimize latency have been added to the Getting Started section.

2019-03-22 Margin parameters clarified.

In both "marginBuy" and "marginSell", the "rate" parameter definition has been fixed. Additionally, the optional "lendingRate" parameter has been defined and a note was added about the default value and minimum setting.

2018-12-27 API documentation overhaul

Refreshed look & feel and adds example code via the shell.

2018-09-25 Order status trading method added

Returns the status of a given order.

2018-09-16 Account notification channel added

The account notifications channel provides real-time updates of trade and balance changes on your account.