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.
Request
// Limit Order
{
"message": "createOrder",
"content": {
"clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
"market": "ETH-USD",
"price": "2000.90",
"quantity": "1.00",
"orderType": "buy",
"tradeType": "limit",
"postOnly": false
}
}
// Market Order
{
"message": "createOrder",
"content": {
"clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
"market": "ETH-USD",
"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
{
"resultType": "createOrder",
"market": "ETH-USD",
"data": {
"statusCode": 202,
"body": "order created, pending acceptance",
"order": {
"market": "ETH-USD",
"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",
"postOnly": true
},
"clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
"apiQuotaUsed": 1
}
}
| Field | Type | Required | Description |
|---|
resultType | string | Yes | createOrder |
market | string | No | Market name, present when connected with market=ALL |
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.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
{
"resultType": "createOrder",
"market": "ETH-USD",
"data": {
"statusCode": 200,
"body": "order accepted",
"order": {
"market": "ETH-USD",
"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",
"postOnly": true
},
"clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285"
}
}
| Field | Type | Required | Description |
|---|
resultType | string | Yes | createOrder |
market | string | No | Market name, present when connected with market=ALL |
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.postOnly | boolean | Yes | Maker-only creation flag |
data.clientRequestId | string | No | Client-generated UUID for correlation |
Response — Error
{
"resultType": "createOrder",
"market": "ETH-USD",
"data": {
"statusCode": 400,
"body": "maximum open orders count of 80 reached",
"order": {
"market": "ETH-USD",
"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",
"postOnly": false
},
"error": {
"slug": "CREATE_ORDER_ERROR",
"code": "1000"
},
"apiQuotaUsed": 1,
"clientRequestId": "2f6635e5-bdab-4fbc-8e2e-21252d2219dc"
}
}
{
"resultType": "createOrder",
"market": "ETH-USD",
"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"
}
}
{
"resultType": "createOrder",
"market": "ETH-USD",
"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"
}
}
{
"resultType": "createOrder",
"market": "ETH-USD",
"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"
}
}
{
"resultType": "createOrder",
"market": "ETH-USD",
"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 | No | Market name, present when connected with market=ALL |
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.postOnly | boolean | No | Maker-only creation flag |
data.error.slug | string | Yes | Error slug |
data.error.code | string | Yes | Error code |
data.apiQuotaUsed | number | No | Present for quota responses |
data.retryAfterSec | number | No | Present when throttled |
data.clientRequestId | string | No | Client-generated UUID for correlation |