> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rails.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Order

#### Request

```json theme={null}
// Limit Order
{
  "message": "createOrder",
  "content": {
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "market": "ETH-USDT",
    "price": "2000.90",
    "quantity": "1.00",
    "orderType": "buy",
    "tradeType": "limit",
    "postOnly": false
  }
}
```

```json theme={null}
// Market Order
{
  "message": "createOrder",
  "content": {
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "market": "ETH-USDT",
    "price": "2000.90",
    "quantity": "1.00",
    "orderType": "buy",
    "tradeType": "market",
    "maxSlippage": "0.02"
  }
}
```

| Field                     | Type    | Required | Description                                                  |
| ------------------------- | ------- | -------- | ------------------------------------------------------------ |
| `message`                 | string  | Yes      | `createOrder`                                                |
| `content.clientRequestId` | string  | No       | Client-generated UUID for correlation                        |
| `content.market`          | string  | No       | Market name, only required when connecting with `market=ALL` |
| `content.price`           | string  | Yes      | Limit price; for market orders, expected price               |
| `content.quantity`        | string  | Yes      | Order quantity                                               |
| `content.orderType`       | string  | Yes      | Order side: `buy` or `sell`                                  |
| `content.tradeType`       | string  | Yes      | Order type: `limit` or `market`                              |
| `content.postOnly`        | boolean | No       | Maker-only creation flag                                     |
| `content.maxSlippage`     | string  | No       | Market-only; `0 - 1` inclusive. `0` acts as IOC              |

#### Response — Acknowledgment

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 202,
    "body": "order created, pending acceptance",
    "order": {
      "market": "ETH-USDT",
      "orderId": "01HZ5J70FCBNJAS7TVPVB4GAAG",
      "orderType": "buy",
      "tradeType": "limit",
      "price": "3600",
      "quantity": "1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1746642892940,
      "updatedAt": 1746642892940,
      "orderStatus": "pending",
      "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
      "reduceOnly": false,
      "postOnly": true
    },
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
    "apiQuotaUsed": 1
  }
}
```

| Field                        | Type    | Required | Description                           |
| ---------------------------- | ------- | -------- | ------------------------------------- |
| `resultType`                 | string  | Yes      | `createOrder`                         |
| `market`                     | string  | Yes      | Market name                           |
| `data.statusCode`            | number  | Yes      | `202`                                 |
| `data.body`                  | string  | Yes      | Status message                        |
| `data.order.market`          | string  | Yes      | Market name                           |
| `data.order.orderId`         | string  | Yes      | Unique identifier for the order       |
| `data.order.orderType`       | string  | Yes      | Order side: `buy` or `sell`           |
| `data.order.tradeType`       | string  | Yes      | Order type: `limit` or `market`       |
| `data.order.price`           | string  | Yes      | Price used                            |
| `data.order.quantity`        | string  | Yes      | Remaining quantity                    |
| `data.order.filledQuantity`  | string  | Yes      | Filled quantity                       |
| `data.order.leverage`        | string  | Yes      | Leverage used at order creation       |
| `data.order.createdAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.updatedAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.orderStatus`     | string  | Yes      | `pending`                             |
| `data.order.clientRequestId` | string  | No       | Client-generated UUID for correlation |
| `data.order.reduceOnly`      | boolean | Yes      | Reduce-only flag                      |
| `data.order.postOnly`        | boolean | Yes      | Maker-only creation flag              |
| `data.clientRequestId`       | string  | No       | Client-generated UUID for correlation |
| `data.apiQuotaUsed`          | number  | Yes      | API quota consumed                    |

#### Response — Confirmation

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 200,
    "body": "order accepted",
    "order": {
      "market": "ETH-USDT",
      "orderId": "01HZ5J70FCBNJAS7TVPVB4GAAG",
      "orderType": "buy",
      "tradeType": "limit",
      "price": "3600",
      "quantity": "1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1746642892940,
      "updatedAt": 1746642892940,
      "orderStatus": "active",
      "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
      "reduceOnly": false,
      "postOnly": true
    },
    "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285"
  }
}
```

| Field                        | Type    | Required | Description                           |
| ---------------------------- | ------- | -------- | ------------------------------------- |
| `resultType`                 | string  | Yes      | `createOrder`                         |
| `market`                     | string  | Yes      | Market name                           |
| `data.statusCode`            | number  | Yes      | `200`                                 |
| `data.body`                  | string  | Yes      | Status message                        |
| `data.order.market`          | string  | Yes      | Market name                           |
| `data.order.orderId`         | string  | Yes      | Unique identifier for the order       |
| `data.order.orderType`       | string  | Yes      | Order side: `buy` or `sell`           |
| `data.order.tradeType`       | string  | Yes      | Order type: `limit` or `market`       |
| `data.order.price`           | string  | Yes      | Price used                            |
| `data.order.quantity`        | string  | Yes      | Remaining quantity                    |
| `data.order.filledQuantity`  | string  | Yes      | Filled quantity                       |
| `data.order.leverage`        | string  | Yes      | Leverage used at order creation       |
| `data.order.createdAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.updatedAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.orderStatus`     | string  | Yes      | `active`                              |
| `data.order.clientRequestId` | string  | No       | Client-generated UUID for correlation |
| `data.order.reduceOnly`      | boolean | Yes      | Reduce-only flag                      |
| `data.order.postOnly`        | boolean | Yes      | Maker-only creation flag              |
| `data.clientRequestId`       | string  | No       | Client-generated UUID for correlation |

#### Response — Error

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 400,
    "body": "maximum open orders count of 80 reached",
    "order": {
      "market": "ETH-USDT",
      "orderId": "01K9G4K19776J1CTA8YXA8AA5H",
      "orderType": "sell",
      "tradeType": "limit",
      "price": "3467",
      "quantity": "0.1",
      "filledQuantity": "0",
      "leverage": "1",
      "createdAt": 1762552022311,
      "updatedAt": 1762552022311,
      "orderStatus": "rejected",
      "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc",
      "reduceOnly": false,
      "postOnly": false
    },
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
```

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 403,
    "body": "user is banned from creating orders due to max open order limit, try again after 300 seconds",
    "error": {
      "slug": "FORBIDDEN",
      "code": "0004"
    },
    "apiQuotaUsed": 1,
    "retryAfterSec": 300,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
```

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 408,
    "body": "order activation timeout, pending order rejected",
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
```

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 429,
    "body": "api call rate limit exceeded",
    "error": {
      "slug": "TOO_MANY_REQUESTS",
      "code": "0003"
    },
    "apiQuotaUsed": 10001,
    "retryAfterSec": 300,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
```

```json theme={null}
{
  "resultType": "createOrder",
  "market": "ETH-USDT",
  "data": {
    "statusCode": 500,
    "body": "Internal Server Error",
    "error": {
      "slug": "CREATE_ORDER_ERROR",
      "code": "1000"
    },
    "apiQuotaUsed": 1,
    "clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
  }
}
```

| Field                        | Type    | Required | Description                                      |
| ---------------------------- | ------- | -------- | ------------------------------------------------ |
| `resultType`                 | string  | Yes      | `createOrder`                                    |
| `market`                     | string  | Yes      | Market name                                      |
| `data.statusCode`            | number  | Yes      | Error status (`400`, `403`, `408`, `429`, `500`) |
| `data.body`                  | string  | Yes      | Error description                                |
| `data.order.market`          | string  | No       | Market name                                      |
| `data.order.orderId`         | string  | No       | Unique identifier for the order                  |
| `data.order.orderType`       | string  | No       | Order side: `buy` or `sell`                      |
| `data.order.tradeType`       | string  | No       | Order type: `limit` or `market`                  |
| `data.order.price`           | string  | No       | Price used                                       |
| `data.order.quantity`        | string  | No       | Remaining quantity                               |
| `data.order.filledQuantity`  | string  | No       | Filled quantity                                  |
| `data.order.leverage`        | string  | No       | Leverage used at order creation                  |
| `data.order.createdAt`       | number  | No       | Milliseconds since epoch                         |
| `data.order.updatedAt`       | number  | No       | Milliseconds since epoch                         |
| `data.order.orderStatus`     | string  | No       | `rejected`                                       |
| `data.order.clientRequestId` | string  | No       | Client-generated UUID for correlation            |
| `data.order.reduceOnly`      | boolean | No       | Reduce-only flag                                 |
| `data.order.postOnly`        | boolean | No       | Maker-only creation flag                         |
| `data.error.slug`            | string  | Yes      | Error slug                                       |
| `data.error.code`            | string  | Yes      | Error code                                       |
| `data.apiQuotaUsed`          | number  | Yes      | API quota consumed                               |
| `data.retryAfterSec`         | number  | No       | Present when throttled                           |
| `data.clientRequestId`       | string  | No       | Client-generated UUID for correlation            |
