# Trade (Spot)

All Spot Market Trading & Order API endpoints require authentication. Please create Bitget API keys to interact with these functions successfully. Accounts must be funded or collateralized for any trades to successfully post.

## Place Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#place-order>
{% endhint %}

#### Function name:

```javascript
placeOrder(options)
```

#### Usage:&#x20;

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

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

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

const result = await placeOrder(myBitgetAccount, 
    {
     symbol: 'BTCUSDT_SPBL',
     side: 'buy',
     orderType: 'market',
     force: 'normal',
     quantity: '10'
   });
```

### Batch Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#batch-order>
{% endhint %}

#### Function name:

```javascript
placeBatchOrder()
```

#### Usage:&#x20;

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

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

async function placeBatchOrder(exchange) {
    try {
        let result = await exchange.placeBatchOrder();
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}
const result = await placeBatchOrder(myBitgetAccount, 
    {
    symbol: 'BTCUSDT_SPBL',
    orderList: [{
     symbol: 'BTCUSDT_SPBL',
     side: 'buy',
     orderType: 'market',
     force: 'normal',
     quantity: '10'
    },
  {
     symbol: 'BTCUSDT_SPBL',
     side: 'buy',
     orderType: 'market',
     force: 'normal',
     quantity: '20'
  }]
  });
```

### Cancel Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#cancel-order>
{% endhint %}

#### Function name:

```javascript
cancelOrder()
```

#### Usage:&#x20;

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

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

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

const result = await cancelOrder(bitget_exchange, 
    {
      symbol:'BTCUSDT_SPBL',
      orderId:'1002321893754589184'
    })
```

### Cancel Order in Batch (single instruments)

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

<https://bitgetlimited.github.io/apidoc/en/spot/#cancel-order-in-batch-single-instruments>
{% endhint %}

#### Function name:

```javascript
cancelBatchOrders()
```

#### Usage:&#x20;

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

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

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

const result = await cancelBatchOrders(bitget_exchange, {
    symbol: 'BTCUSDT_SPBL',
    orderIds: [
      '111111111111111111',
      '222222222222222222'
    ]
  });
```

### Get Order Details

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-order-details>
{% endhint %}

#### Function name:

```javascript
getOrderDetails()
```

#### Usage:&#x20;

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

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

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

const result = await getOrderDetails(myBitgetAccount
    {
        symbol:'BTCUSDT_SPBL',
        orderId:'1002341348069003264'
    }
);
```

### Get Order List

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-order-list>
{% endhint %}

#### Function name:

```javascript
getOrderList()
```

#### Usage:&#x20;

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

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

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

const result = await getOrderList(bitget_exchange, {symbol: ""});
```

### Get Order History

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-order-history>
{% endhint %}

#### Function name:

```javascript
getOrderHistory()
```

#### Usage:&#x20;

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

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

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

const result = await getOrderHistory(myBitgetAccount, 
    {
        symbol: 'BTCUSDT_SPBL'
    }
);
```

### Get Transaction Details

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-transaction-details>
{% endhint %}

#### Function name:

```javascript
getTransactionDetails()
```

#### Usage:&#x20;

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

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

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

const result = await getTransactionDetails(myBitgetAccount, 
    {
        "symbol: BTCUSDT_SPBL"
    });
```

### Place Plan Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#place-plan-order>
{% endhint %}

#### Function name:

```javascript
placePlanOrder()
```

#### Usage:&#x20;

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

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

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

const result = await placePlanOrder(myBitgetAccount, 
    {
        symbol: "BTCUSDT_SPBL",
        side: "buy",
        triggerPrice: "20000",
        size: "20",
        triggerType: "market_price",
        orderType: "market"       
    });
```

### Modify Plan Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#modify-plan-order>
{% endhint %}

#### Function name:

```javascript
modifyPlanOrder()
```

#### Usage:&#x20;

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

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

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

const result = await modifyPlanOrder(myBitgetAccount 
    {
        orderId: "123456",
        triggerPrice: "19999",
        orderType: "market"
    });
```

### Cancel Plan Order

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

<https://bitgetlimited.github.io/apidoc/en/spot/#cancel-plan-order>
{% endhint %}

#### Function name:

```javascript
cancelPlanOrder()
```

#### Usage:&#x20;

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

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

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

const result = await cancelPlanOrder(myBitgetAccount,
    {
        orderId: "123456"
    })
```

### Get Current Plan Orders

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-current-plan-orders>
{% endhint %}

#### Function name:

```javascript
getCurrentPlanOrders()
```

#### Usage:&#x20;

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

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

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

const result = await getCurrentPlanOrders(myBitgetAccount,
{symbol: "BTCUSDT_SPBL"});
```

### Get History Plan Orders

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

<https://bitgetlimited.github.io/apidoc/en/spot/#get-history-plan-orders>
{% endhint %}

#### Function name:

```javascript
getHistoryPlanOrders()
```

#### Usage:&#x20;

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

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

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

const result = await getHistoryPlanOrders(myBitgetAccount,
    {
        symbol: "BTCUSDT_SPBL",
        pageSize: "20",
        startTime: "1667889483000",
        endTime: "1668134732000"
    });
```


---

# 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/bitget-functions/trade-spot.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.
