# Contract

## Query product information

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-product-information](https://phemex-docs.github.io/#query-product-information)
{% endhint %}

#### Function Name:

```javascript
getProductInfo()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getProductInfo(exchange, options) {
    try {
        let result = await exchange.getProductInfo(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getProductInfo(myMainPhemexExchange);
```

## Query server time

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-server-time](https://phemex-docs.github.io/#query-server-time)
{% endhint %}

#### Function Name:

```javascript
getServerTime()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getServerTime(exchange, options) {
    try {
        let result = await exchange.getServerTime(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getServerTime(myPhemexExchange);
```

### Place order <a href="#place-order-http-put-prefered" id="place-order-http-put-prefered"></a>

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

<https://phemex-docs.github.io/#place-order-http-put-prefered>
{% endhint %}

#### Function Name:

```javascript
placeOrderPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function placeOrderPerp(exchange, options) {
    try {
        let result = await exchange.placeOrderPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await placeOrderPerp(myPhemexExchange, {
        symbol: "BTCUSD",
        clOrdID: "nkluwnfkdddlnladad34o33sli4nfaao2m3",
        side: "Buy",
        orderQty: "2001",
        ordType: "Limit",
        priceEp: "100000000"
        });

```

## Cancel order by order ID or client order ID

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#cancel-order-by-order-id-or-client-order-id](https://phemex-docs.github.io/#cancel-order-by-order-id-or-client-order-id)
{% endhint %}

#### Function Name:

```javascript
cancelOrderPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function cancelOrderPerp(exchange, options) {
    try {
        let result = await exchange.cancelOrderPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await cancelOrderPerp(myPhemexExchange, {
         symbol: "BTCUSD",
         orderID: "e31db900-ec06-47b4-97ee-c9018e22322f"
     });
```

## Bulk cancel orders

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#bulk-cancel-orders](https://phemex-docs.github.io/#bulk-cancel-orders)
{% endhint %}

#### Function Name:

```javascript
cancelBatchOrderPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function cancelBatchOrderPerp(exchange, options) {
    try {
        let result = await exchange.cancelBatchOrderPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await cancelBatchOrderPerp(myMainPhemexExchange, {
        symbol: "BTCUSDT",
        orderID: "234fsfs3,d2123dada2"
     });
```

## Cancel all orders

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#cancel-all-orders](https://phemex-docs.github.io/#cancel-all-orders)
{% endhint %}

#### Function Name:

```javascript
cancelAllOrdersPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function cancelAllOrdersPerp(exchange, options) {
    try {
        let result = await exchange.cancelAllOrdersPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await cancelAllOrdersPerp(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query trading account and positions

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-trading-account-and-positions](https://phemex-docs.github.io/#query-trading-account-and-positions)
{% endhint %}

#### Function Name:

```javascript
getTradingAccountPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getTradingAccountPerp(exchange, options) {
    try {
        let result = await exchange.getTradingAccountPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getTradingAccountPerp(myMainPhemexExchange, {
        currency: "USDT"
    });
```

## Query trading account and positions with realtime unPnL

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-trading-account-and-positions-with-realtime-unpnl](https://phemex-docs.github.io/#query-trading-account-and-positions-with-realtime-unpnl)
{% endhint %}

#### Function Name:

```javascript
getTradingAccountUnPnLPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getTradingAccountUnPnLPerp(exchange, options) {
    try {
        let result = await exchange.getTradingAccountUnPnLPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getTradingAccountUnPnLPerp(myPhemexExchange, {
         currency: "BTC"
     });
```

## Set leverage

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#set-leverage](https://phemex-docs.github.io/#set-leverage)
{% endhint %}

#### Function Name:

```javascript
setLeverage()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function setLeverage(exchange, options) {
    try {
        let result = await exchange.setLeverage(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await setLeverage(myPhemexExchange, {
         symbol: "BTCUSD",
         leverage: "10"
     });
```

## Set position risklimit

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#set-position-risklimit](https://phemex-docs.github.io/#set-position-risklimit)
{% endhint %}

#### Function Name:

```javascript
setRiskLimit()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function setRiskLimit(exchange, options) {
    try {
        let result = await exchange.setRiskLimit(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await setRiskLimit(myPhemexExchange, {
         symbol: "BTCUSD",
         riskLimit: "10"
     });
```

## Assign position balance in isolated marign mode

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#assign-position-balance-in-isolated-marign-mode](https://phemex-docs.github.io/#assign-position-balance-in-isolated-marign-mode)
{% endhint %}

#### Function Name:

```javascript
assignPositionBalance()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function assignPositionBalance(exchange, options) {
    try {
        let result = await exchange.assignPositionBalance(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await assignPositionBalance(myPhemexExchange, {
         symbol: "BTCUSD",
         posbalance: "10"
     });
```

## Query open orders by symbol

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-open-orders-by-symbol](https://phemex-docs.github.io/#query-open-orders-by-symbol)
{% endhint %}

#### Function Name:

```javascript
getOpenOrdersPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getOpenOrdersPerp(exchange, options) {
    try {
        let result = await exchange.getOpenOrdersPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getOpenOrdersPerp(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query closed orders by symbol

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-closed-orders-by-symbol](https://phemex-docs.github.io/#query-closed-orders-by-symbol)
{% endhint %}

#### Function Name:

```javascript
getClosedOrdersPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getClosedOrdersPerp(exchange, options) {
    try {
        let result = await exchange.getClosedOrdersPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getClosedOrdersPerp(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query user order by order ID or client order ID

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-user-order-by-order-id-or-client-order-id](https://phemex-docs.github.io/#query-user-order-by-order-id-or-client-order-id)
{% endhint %}

#### Function Name:

```javascript
getUserOrderPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getUserOrderPerp(exchange, options) {
    try {
        let result = await exchange.getUserOrderPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getUserOrderPerp(myPhemexExchange, {
         symbol: "BTCUSD",
         orderID: "987515a0-3b56-4a9a-9f2e-48ecdd674f4a"
     });
```

## Query user trade

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-user-trade](https://phemex-docs.github.io/#query-user-trade)
{% endhint %}

#### Function Name:

```javascript
getUserTradePerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getUserTradePerp(exchange, options) {
    try {
        let result = await exchange.getUserTradePerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getUserTradePerp(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query order book

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-order-book](https://phemex-docs.github.io/#query-order-book)
{% endhint %}

#### Function Name:

```javascript
getOrderBook()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getOrderBook(exchange, options) {
    try {
        let result = await exchange.getOrderBook(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getOrderBook(myPhemexExchange, {
         symbol: "sBTCUSDT"
     });
```

## Query full order book

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-full-order-book](https://phemex-docs.github.io/#query-full-order-book)
{% endhint %}

#### Function Name:

```javascript
getOrderBookFull()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getOrderBookFull(exchange, options) {
    try {
        let result = await exchange.getOrderBookFull(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getOrderBookFull(myPhemexExchange, {
         symbol: "sBTCUSDT"
     });
```

## Query kline

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-kline](https://phemex-docs.github.io/#query-kline)
{% endhint %}

#### Function Name:

```javascript
getKline()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getKline(exchange, options) {
    try {
        let result = await exchange.getKline(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getKline(myPhemexExchange, {
         symbol: "BTCUSD",
         resolution: "60"
     });
```

## Query recent trades

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-recent-trades](https://phemex-docs.github.io/#query-recent-trades)
{% endhint %}

#### Function Name:

```javascript
getRecentTrades()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getRecentTrades(exchange, options) {
    try {
        let result = await exchange.getRecentTrades(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getRecentTrades(myPhemexExchange, {
         symbol: "sBTCUSDT"
     });
```

## Query 24 hours ticker

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-24-hours-ticker](https://phemex-docs.github.io/#query-24-hours-ticker)
{% endhint %}

#### Function Name:

```javascript
get24HourTickerPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function get24HourTickerPerp(exchange, options) {
    try {
        let result = await exchange.get24HourTickerPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await get24HourTickerPerp(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query 24 hours ticker for all symbols

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-24-hours-ticker-for-all-symbols](https://phemex-docs.github.io/#query-24-hours-ticker-for-all-symbols)
{% endhint %}

#### Function Name:

```javascript
get24HourTickerAllSymbolsPerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function get24HourTickerAllSymbolsPerp(exchange, options) {
    try {
        let result = await exchange.get24HourTickerAllSymbolsPerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await get24HourTickerAllSymbolsPerp(myPhemexExchange);
```

## Query history trades by symbol

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-history-trades-by-symbol](https://phemex-docs.github.io/#query-history-trades-by-symbol)
{% endhint %}

#### Function Name:

```javascript
getHistoryTradePerp()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getHistoryTradePerp(exchange, options) {
    try {
        let result = await exchange.getHistoryTradePerp(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getHistoryTradePerp(myPhemexExchange, {
         market: "BTCUSD"
     });
```

## Query funding rate history

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-funding-rate-history](https://phemex-docs.github.io/#query-funding-rate-history)
{% endhint %}

#### Function Name:

```javascript
getFundingRateHistoryHedged()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getFundingRateHistoryHedged(exchange, options) {
    try {
        let result = await exchange.getFundingRateHistoryHedged(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getFundingRateHistoryHedged(myPhemexExchange, {symbol: ".ETHUSDTFR8H"});
```

## Query funding fee history

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-funding-fee-history](https://phemex-docs.github.io/#query-funding-fee-history)
{% endhint %}

#### Function Name:

```javascript
getFundingFeeHistory()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getFundingFeeHistory(exchange, options) {
    try {
        let result = await exchange.getFundingFeeHistory(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getFundingFeeHistory(myPhemexExchange, {
         symbol: "BTCUSD"
     });
```

## Query contract fee rate

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-contract-fee-rate](https://phemex-docs.github.io/#query-contract-fee-rate)
{% endhint %}

#### Function Name:

```javascript
getContractFeeRate()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getContractFeeRate(exchange, options) {
    try {
        let result = await exchange.getContractFeeRate(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getContractFeeRate(myPhemexExchange, {
         settleCurrency: "BTC"
     });
```

## Query Funds Detail

{% hint style="info" %}
Please refer to the official Phemex API Docs for the Required parameters.

[https://phemex-docs.github.io#query-funds-detail](https://phemex-docs.github.io/#query-funds-detail)
{% endhint %}

#### Function Name:

```javascript
getFundsDetail()
```

#### Usage:

```javascript
import { createExchange } from "./exchanges/exchange.js";

   let myPhemexExchange  = createExchange({
      exchange: "phemex",
      authenticate: "true",
      key: "myKey",
      secret: "mySecret",
      label: "phemex"
  });

async function getFundsDetail(exchange, options) {
    try {
        let result = await exchange.getFundsDetail(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

let result = await getFundsDetail(myMainPhemexExchange);
```
