# Account & Subaccount

All Account and Subaccount API endpoints require authentication. Please create OKX API keys to interact with these functions successfully.&#x20;

## Account

### Get Balance

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

<https://www.okx.com/docs-v5/en/#trading-account-rest-api-get-balance>
{% endhint %}

#### Function Name:

```javascript
getBalances()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getBalances(myOkxAccount)
```

### Get Positions

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-positions>
{% endhint %}

#### Function Name:

```javascript
getPositions()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getPositions(myOkxAccount)
```

### Get Positions History

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-positions-history>
{% endhint %}

#### Function Name:

```javascript
getPositionsHistory()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getPositionsHistory(myOkxAccount)
```

### Get Account and Position Risk

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-account-and-position-risk>
{% endhint %}

#### Function Name:

```javascript
getAccountPosAndRisk()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getAccountPosAndRisk(myOkxAccount)
```

### Get Bills Details (last 7 days)

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-bills-details-last-7-days>
{% endhint %}

#### Function Name:

```javascript
getBills()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getBills(myOkxAccount)
```

### Get Bills Details (last 3 months)

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-bills-details-last-3-months>
{% endhint %}

#### Function Name:

```javascript
getBillsArchive()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getBillsArchive(myOkxAccount)
```

### Get Account Configuration

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-account-configuration>
{% endhint %}

#### Function Name:

```javascript
getAccountConfig()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getAccountConfig(myOkxAccount)
```

### Set Position Mode

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

<https://www.okx.com/docs-v5/en/#rest-api-account-set-position-mode>
{% endhint %}

#### Function Name:

```javascript
setPosMode()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await setPosMode(myOkxAccount,
{
    posMode:"long_short_mode"
}
)
```

### Set Leverage

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

<https://www.okx.com/docs-v5/en/#rest-api-account-set-leverage>
{% endhint %}

#### Function Name:

```javascript
setLeverage()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await setLeverage(myOkxAccount,
{
    instId:"BTC-USDT",
    lever:"5",
    mgnMode:"isolated"
}
)
```

### Get Maximum Buy/Sell Amount or Open Amount

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-maximum-buy-sell-amount-or-open-amount>
{% endhint %}

#### Function Name:

```javascript
getMaxSize()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getMaxSize(myOkxAccount,
{
    instId:"BTC-USDT",
    tdMode:"isolated"
}
)
```

### Get Maximum Available Tradable Amount

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-maximum-available-tradable-amount>
{% endhint %}

#### Function Name:

```javascript
getMaxAvailSize()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getMaxAvailSize(myOkxAccount,
{
    instId:"BTC-USDT",
    tdMode:"isolated"
}
)
```

### Increase/Decrease Margin

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

<https://www.okx.com/docs-v5/en/#rest-api-account-increase-decrease-margin>
{% endhint %}

#### Function Name:

```javascript
adjustMargin()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await adjustMargin(myOkxAccount,
{
    instId:"BTC-USDT-200626",
    posSide:"short",
    type:"add",
    amt:"1"
}
)
```

### Get Leverage

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-leverage>
{% endhint %}

#### Function Name:

```javascript
getLeverage()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getLeverage(myOkxAccount,
{
    instId:"BTC-USDT-200626",
    mgnMode: "cross"
}
)
```

### Get The Maximum Loan Of Instrument

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-the-maximum-loan-of-instrument>
{% endhint %}

#### Function Name:

```javascript
getMaxLoan()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getMaxLoan(myOkxAccount,
{
    instId:["BTC-USDT-200626"],
    mgnMode: "cross"
}
)
```

### Get Fee Rates

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-fee-rates>
{% endhint %}

#### Function Name:

```javascript
getFeeRates()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getFeeRates(myOkxAccount,
{
    instType: "SPOT",
    instID: "BTC-USDT"
}
)
```

### Get Interest Accrued Data

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-interest-accrued-data>
{% endhint %}

#### Function Name:

```javascript
getFeeRates()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getInterestAccrued(myOkxAccount)
```

### Get Interest Rate

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-interest-rate>
{% endhint %}

#### Function Name:

```javascript
getInterestRate()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getInterestRate(myOkxAccount)
```

### Set Greeks

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

<https://www.okx.com/docs-v5/en/#rest-api-account-set-greeks-pa-bs>
{% endhint %}

#### Function Name:

```javascript
setGreeks()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await setGreeks(myOkxAccount, {
    greeksType:"PA"
})
```

### Isolated Margin Trading Settings

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

<https://www.okx.com/docs-v5/en/#rest-api-account-isolated-margin-trading-settings>
{% endhint %}

#### Function Name:

```javascript
setIsolatedMode()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await setIsolatedMode(myOkxAccount, {
    isoMode:"automatic",
    type:"MARGIN"
})
```

### Get Maximum Withdrawals

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-maximum-withdrawals>
{% endhint %}

#### Function Name:

```javascript
getMaxWithdrawal()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getMaxWithdrawal(myOkxAccount)
```

### Get Account Risk State

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-account-risk-state>
{% endhint %}

#### Function Name:

```javascript
getRiskState()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getRiskState(myOkxAccount)
```

### VIP Loans Borrow and Repay

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

<https://www.okx.com/docs-v5/en/#rest-api-account-vip-loans-borrow-and-repay>
{% endhint %}

#### Function Name:

```javascript
vipLoanBorrowRepay()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await vipLoanBorrowRepay(myOkxAccount, {
    ccy:"USDT",
    side:"borrow",
    amt:"100"
})
```

### Get Borrow and Repay History for VIP Loans

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-borrow-and-repay-history-for-vip-loans>
{% endhint %}

#### Function Name:

```javascript
getVipLoanHistory()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getVipLoanHistory(myOkxAccount)
```

### Get Borrow Interest and Limit

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-borrow-interest-and-limit>
{% endhint %}

#### Function Name:

```javascript
getBorrowInterestAndLimit()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getBorrowInterestAndLimit(myOkxAccount)
```

### Position Builder

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

<https://www.okx.com/docs-v5/en/#rest-api-account-position-builder>
{% endhint %}

#### Function Name:

```javascript
positionBuilder()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await positionBuilder(myOkxAccount,
{
   instType:"SWAP",
   inclRealPos:"true",
   simPos:[
     {
          pos:"10",
          instId:"BTC-USDT-SWAP"
     },
     {
          pos:"10",
          instId:"LTC-USDT-SWAP"
     }
   ]
})
```

### Get Greeks

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

<https://www.okx.com/docs-v5/en/#rest-api-account-get-greeks>
{% endhint %}

#### Function Name:

```javascript
getGreeks()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getGreeks(myOkxAccount)
```

## Subaccount

### View Subaccount List

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-view-sub-account-list>
{% endhint %}

#### Function Name:

```javascript
getSubaccountList()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getSubaccountList(myOkxAccount)
```

### Get Subaccount Trading Balance

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-get-sub-account-trading-balance>
{% endhint %}

#### Function Name:

```javascript
getSubaccountTradingBalance()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getSubaccountTradingBalance(myOkxAccount, {
    subAcct: "mySubaccount"
    })
```

### Get Subaccount Funding Balance

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-get-sub-account-funding-balance>
{% endhint %}

#### Function Name:

```javascript
getSubaccountFundingBalance()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getSubaccountFundingBalance(myOkxAccount, {
    subAcct: "mySubaccount"
    })
```

### History of Subaccount Transfer

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-history-of-sub-account-transfer>

Applies to master accounts only.
{% endhint %}

#### Function Name:

```javascript
getSubaccountBills()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getSubaccountBills(myOkxAccount)
```

### Master Accounts Manage the Transfers Between Subaccounts

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-master-accounts-manage-the-transfers-between-sub-accounts>
{% endhint %}

#### Function Name:

```javascript
subaccountTransfer()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await subaccountTransfer(myOkxAccount, 
{
    ccy:"USDT",
    amt:"1.5",
    from:"6",
    to:"6",
    fromSubAccount:"test-1",
    toSubAccount:"test-2"
})
```

### Set Permission of Transfer Out

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-set-permission-of-transfer-out>
{% endhint %}

#### Function Name:

```javascript
canTransferOut()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await canTransferOut(myOkxAccount, 
{
    subAcct:"test-1",
    canTransOut:true
})
```

### Get Custody Trading Subaccount List

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

<https://www.okx.com/docs-v5/en/#rest-api-subaccount-get-custody-trading-sub-account-list>
{% endhint %}

#### Function Name:

```javascript
getCustodyTradingAccountList()
```

#### Usage:

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

  let myOkxAccount = createExchange({
      exchange: "okx",
      authenticate: true,
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "okx",
      marginType: "usdt"
});

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

const result = await getCustodyTradingAccountList(myOkxAccount)
```


---

# 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/okx-functions/account-and-subaccount.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.
