---
title: "/trade/orders"
method: POST
path: "/api/v1/trade/orders"
tags: ["Trade"]
---

# /trade/orders

`POST /api/v1/trade/orders`

Submit a new order for execution.

## Request body

- CreateOrderRequest
  - `signedFields` CreateOrderRequestSignedFields, required
    - `symbol` string, required — The symbol of the perpetual for which to create the order
    - `accountAddress` string, required — The account address of the order. May be an account user is authorized for.
    - `priceE9` string, required — The price in base e9 of the asset to be traded. Should always be a number
    - `quantityE9` string, required — The quantity in base e9 of the asset to be traded. Should always be a number
    - `side` 'LONG' | 'SHORT' | 'UNSPECIFIED', required — Side of the order
    - `leverageE9` string, required — The leverage in base e9 of the order to be traded. Should always be a number
    - `isIsolated` boolean, required — Is this order isolated or cross margin. Note market must be set to the same mode.
    - `salt` string, required — The random generated SALT. Should always be a number
    - `idsId` string, required — the ID of the internal datastore for the target network
    - `expiresAtMillis` integer, required — timestamp in millis at which order will expire. Defaults to 1 month for LIMIT orders if not provided
    - `signedAtMillis` integer, required — The timestamp in millis at which the request was signed
  - `signature` string, required — The signature of the request, encoded from the signedFields
  - `clientOrderId` string — The client-defined unique identifier of this order used for lookup. This should always be unique; however, the server will not gurantee this or impose any checks.
  - `type` 'LIMIT' | 'MARKET' | 'STOP_LIMIT' | 'STOP_MARKET' | 'LIQUIDATION' | 'STOP_LOSS_MARKET' | 'TAKE_PROFIT_MARKET' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT_LIMIT' | 'BANKRUPTCY_LIQUIDATION' | 'UNSPECIFIED', required — The type of order. (BANKRUPTCY_LIQUIDATION is deprecated)
  - `reduceOnly` boolean, required — Is this order to only reduce a position? Default false
  - `postOnly` boolean — If set to TRUE, the order can only be a maker order
  - `timeInForce` 'GTT' | 'IOC' | 'FOK' | 'UNSPECIFIED' — The time-in-force policy for the order. By default, all orders are GTT. UNSPECIFIED is set to default. GTT: Good Til Time IOC: Immediate Or Cancel FOK: Fill Or Kill
  - `triggerPriceE9` string — Trigger price in base e9 for stop orders. This should always be a number
  - `selfTradePreventionType` 'TAKER' | 'MAKER' | 'BOTH' | 'UNSPECIFIED' — The strategy used to resolve self trades. TAKER: On a self trade, the taker order will be cancelled MAKER: On a self trade, the maker order will be cancelled BOTH: On a self trade, both the taker and the maker order will be cancelled UNSPECIFIED: set to default value

## Response `200`

Order creation successful.

- CreateOrderResponse
  - `orderHash` string, required — The unique identifier of this order, to be used as a lookup key

## Other responses

- `202` — Order creation submitted successfully.
- `400` — Bad Request. The request was invalid or malformed.
- `401` — Unauthorized. Authentication is required or invalid. Signature is invalid
- `403` — Forbidden.
- `404` — Not Found. The requested account was not found.
- `429` — Too Many Requests. The request was rate limited.
- `500` — Internal Server Error. An unexpected error occurred on the server.
- `503` — Service Unavailable. The service is currently unavailable.

---

[API](https://skmtc.net/bluefin/apis/bluefin-trade-api.md) · [All operations](https://skmtc.net/bluefin/apis/bluefin-trade-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bluefin/bluefin-trade-api/versions/de8d6d7f39d7/schema)
