poloniex-node-api

Poloniex Node.js API

Usage no npm install needed!

<script type="module">
  import poloniexNodeApi from 'https://cdn.skypack.dev/poloniex-node-api';
</script>

README

Poloniex Node.js API CI Status npm Coverage Status Known Vulnerabilities code style: prettier semantic-release Conventional Commits NPM license node version npm downloads GitHub top language

Node.js library for Poloniex.

Installation

npm install poloniex-node-api

Usage

PublicClient

import { PublicClient } from "poloniex-node-api";
const client = new PublicClient();
const tickers = await client.getTickers();
const volume = await client.getVolume();
const currencyPair = "USDT_BTC";
const depth = 25;
const book = await client.getOrderBook({ currencyPair, depth });
const currencyPair = "currencyPair";
const start = 1410158341;
const end = 1410499372;
const trades = await client.getTradeHistory({ currencyPair, start, end });
const currencyPair = "BTC_XMR";
const period = 14400;
const start = 1546300800;
const end = 1546646400;
const candles = await client.getChartData({ currencyPair, period, start, end });
const includeMultiChainCurrencies = true;
const currencies = await client.getCurrencies({ includeMultiChainCurrencies });
const currency = "USDT";
const loans = await client.getLoanOrders({ currency });

AuthenticatedClient

import { AuthenticatedClient } from "poloniex-node-api";
const key = "poloniexapikey";
const secret = "poloniexapisecret";
const client = new AuthenticatedClient({ key, secret });
const balances = await client.getBalances();
const account = "all";
const balances = await client.getCompleteBalances({ account });
const addresses = await client.getDepositAddresses();
const currency = "ZEC";
const addresses = await client.getNewAddress({ currency });
const start = 1539954535;
const end = 1540314535;
const result = await client.getDepositsWithdrawals({ start, end });
const currencyPair = "BTC_DASH";
const orders = await client.getOpenOrders({ currencyPair });
const currencyPair = "BTC_ETC";
const start = 1573953463;
const end = 1576588663;
const limit = 5000;
const trades = await client.getHistoryTrades({
  currencyPair,
  start,
  end,
  limit,
});
const orderNumber = 96238912842;
const trades = await client.getOrderTrades({ orderNumber });
const orderNumber = 96238912842;
const trades = await client.getOrderStatus({ orderNumber });
const currencyPair = "BTC_ETH";
const rate = 0.01;
const amount = 1;
const clientOrderId = 12345;
const postOnly = 1;
const order = await client.buy({
  currencyPair,
  rate,
  amount,
  postOnly,
  clientOrderId,
});
const currencyPair = "BTC_ETH";
const rate = 10;
const amount = 1;
const order = await client.sell({ currencyPair, rate, amount });
const orderNumber = 514845991795;
let result = await client.cancelOrder({ orderNumber });
// or by `clientOrderId`
const clientOrderId = 12345;
result = await client.cancelOrder({ clientOrderId });
const currencyPair = "BTC_ETH";
const orders = await client.cancelAllOrders({ currencyPair });
const orderNumber = 514851026755;
const rate = 0.00015;
const clientOrderId = 12345;
const result = await client.moveOrder({ rate, orderNumber, clientOrderId });
const currency = "EOS";
const amount = 1000;
const address = "eos-address";
const paymentId = 1234567890;
const result = await client.withdraw({
  currency,
  amount,
  address,
  paymentId,
});
const fees = await client.getFeeInfo();
const account = "lending";
const balances = await client.getAccountBalances({ account });
const balances = await client.getTradableBalances();
const currency = "BTC";
const amount = 0.5;
const fromAccount = "lending";
const toAccount = "exchange";
const transfer = await client.transferBalance({
  currency,
  amount,
  fromAccount,
  toAccount,
});
const summary = await client.getMarginSummary();
const currencyPair = "BTC_ETH";
const rate = 0.01;
const amount = 1;
const lendingRate = 0.01;
const order = await client.marginBuy({
  currencyPair,
  rate,
  amount,
  lendingRate,
});
const currencyPair = "BTC_ETH";
const rate = 10;
const amount = 1;
const lendingRate = 0.015;
const clientOrderId = 12345;
const order = await client.marginSell({
  currencyPair,
  rate,
  amount,
  lendingRate,
  clientOrderId,
});
const currencyPair = "BTC_ETH";
const position = await client.getMarginPosition({ currencyPair });
const currencyPair = "BTC_ETH";
const position = await client.closeMarginPosition({ currencyPair });
const currency = "BTC";
const amount = 0.1;
const duration = 2;
const autoRenew = 0;
const lendingRate = 0.015;
const offer = await client.createLoanOffer({
  currency,
  amount,
  duration,
  autoRenew,
  lendingRate,
});
const orderNumber = 1002013188;
const offer = await client.cancelLoanOffer({ orderNumber });
const offers = await client.getOpenLoanOffers();
const loans = await client.getActiveLoans();
const start = 1483228800;
const end = 1483315200;
const limit = 100;
const history = await client.getLendingHistory({ start, end, limit });
const orderNumber = 1002013188;
const result = await client.toggleAutoRenew({ orderNumber });
const fromCurrency = "WBTC";
const toCurrency = "BTC";
const amount = 1.2;
const result = await client.swapCurrencies({
  fromCurrency,
  toCurrency,
  amount,
});

WebsocketClient

import { WebsocketClient } from "poloniex-node-api";
const key = "poloniexapikey";
const secret = "poloniexapisecret";
const channels = [1000, "BTC_DOGE"];
const websocket = new WebsocketClient({ key, secret, channels });
websocket.on("open", () => console.log("open"));
websocket.on("close", () => console.log("close"));
websocket.on("error", (error) => console.error(error));
websocket.on("message", (message) => console.info(message));
  • connect
await websocket.connect();
  • disconnect
await websocket.disconnect();
await websocket.subscribe(1003);
await websocket.unsubscribe("BTC_ZEC");

Test

npm test