# 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);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.compendium.finance/pendax/using-pendax-sdk/phemex-functions/contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
