---
title: "Create Order"
method: POST
path: "/orders"
tags: ["Trading"]
---

# Create Order

`POST /orders`

Creates a buy/sell order for prediction market positions. Requires signed order data.

## Request body

- CreateOrderDto
  - `order` Order, required
    - `salt` number, required — Unique random value for signature uniqueness (prevents replay attacks)
    - `maker` string, required — Ethereum address of the maker (order creator)
    - `signer` string, required — Address that signed the order
    - `taker` string — Specific taker address (optional for open orders)
    - `tokenId` string, required — Token ID being traded (YES or NO position ID from conditional token)
    - `makerAmount` number, required — Amount the maker is offering, scaled by 1e6. For GTC orders: price * size * 1e6 (BUY) or size * 1e6 (SELL). For FOK orders: USDC to spend * 1e6 (BUY) or shares to sell * 1e6 (SELL).
    - `takerAmount` number, required — Amount the maker wants in return, scaled by 1e6. For GTC orders: size * 1e6 (BUY) or price * size * 1e6 (SELL). For FOK orders: always 1.
    - `expiration` string — Order expiration timestamp
    - `nonce` number — Order nonce for cancellation tracking
    - `price` number — Order price as decimal (0.01-0.99, required for GTC orders)
    - `feeRateBps` number, required — Fee rate in basis points (1% = 100)
    - `side` 0 | 1, required — Order side: 0 = BUY, 1 = SELL
    - `signature` string — EIP-712 signature of order details. Optional when using delegated signing.
    - `signatureType` 0 | 1 | 2 | 3 — Signature type (0-3). Optional when using delegated signing.
  - `ownerId` number, required — Profile ID of the order owner
  - `orderType` 'FOK' | 'GTC', required — Order type (GTC=Good Till Cancelled, FOK=Fill Or Kill)
  - `marketSlug` string, required — Market identifier slug
  - `clientOrderId` string — Client-provided idempotency key for order placement. If a duplicate is submitted, the server returns 409 Conflict.
  - `onBehalfOf` number — Profile ID to place order on behalf of (partner flow). Requires an API token with trading scope and a partner relationship with the target profile.

## Response `201`

Order successfully created and matched

- OrderResponseDto
  - `order` Order, required
    - `salt` number, required — Unique random value for signature uniqueness (prevents replay attacks)
    - `maker` string, required — Ethereum address of the maker (order creator)
    - `signer` string, required — Address that signed the order
    - `taker` string — Specific taker address (optional for open orders)
    - `tokenId` string, required — Token ID being traded (YES or NO position ID from conditional token)
    - `makerAmount` number, required — Amount the maker is offering, scaled by 1e6. For GTC orders: price * size * 1e6 (BUY) or size * 1e6 (SELL). For FOK orders: USDC to spend * 1e6 (BUY) or shares to sell * 1e6 (SELL).
    - `takerAmount` number, required — Amount the maker wants in return, scaled by 1e6. For GTC orders: size * 1e6 (BUY) or price * size * 1e6 (SELL). For FOK orders: always 1.
    - `expiration` string — Order expiration timestamp
    - `nonce` number — Order nonce for cancellation tracking
    - `price` number — Order price as decimal (0.01-0.99, required for GTC orders)
    - `feeRateBps` number, required — Fee rate in basis points (1% = 100)
    - `side` 0 | 1, required — Order side: 0 = BUY, 1 = SELL
    - `signature` string — EIP-712 signature of order details. Optional when using delegated signing.
    - `signatureType` 0 | 1 | 2 | 3 — Signature type (0-3). Optional when using delegated signing.
  - `makerMatches` MakerMatch[] — Maker matches if order was matched immediately
  - `execution` OrderExecutionDto, required — Execution and settlement summary for a created order
    - `matched` boolean, required — Whether the order was matched immediately
    - `settlementStatus` 'UNMATCHED' | 'MATCHED' | 'MINED' | 'CONFIRMED' | 'RETRYING' | 'FAILED', required — Current settlement status of the order
    - `tradeEventId` string — Trade event ID (present when matched)
    - `txHash` string, nullable — On-chain transaction hash (present when mined)
    - `clientOrderId` string — Echo of client-provided idempotency key
    - `feeRateBps` number, required — Fee rate in basis points applied to this order
    - `effectiveFeeBps` number, required — Effective fee rate in basis points after any rebates
    - `totalsRaw` OrderExecutionTotalsRawDto, required — Raw execution totals in contract units (strings to preserve precision)
      - `contractsGross` string, required
      - `contractsFee` string, required
      - `contractsNet` string, required
      - `usdGross` string, required
      - `usdFee` string, required
      - `usdNet` string, required

## Other responses

- `400` — Invalid order data, insufficient balance/allowance, or market deadline passed
- `401` — User not authenticated
- `500` — Server error during order creation

## Changes

- **2026-03-26** `7583da44d16b` — 2 info
  - the endpoint scheme security `ApiKeyAuth` was added to the API
  - the endpoint scheme security `bearer` was removed from the API
- **2026-03-24** `850283168331` — 2 breaking, 5 info
  - the response property `order/allOf[#/components/schemas/Order]/signature` became optional for the status `201`
  - the response property `order/allOf[#/components/schemas/Order]/signatureType` became optional for the status `201`
  - added the new optional request property `clientOrderId`
  - added the new optional request property `onBehalfOf`
  - …3 more
- **2026-03-09** `57db5c3f80ff` — 2 info
  - the endpoint scheme security `bearer` was added to the API
  - the endpoint scheme security `limitless_session` was removed from the API

[Change history](https://skmtc.dev/limitless-labs-group/apis/limitless-exchange-api/changes/orders/post.md)

---

[API](https://skmtc.dev/limitless-labs-group/apis/limitless-exchange-api.md) · [All operations](https://skmtc.dev/limitless-labs-group/apis/limitless-exchange-api/llms.txt) · [OpenAPI document](https://skmtc.dev/limitless-labs-group/apis/limitless-exchange-api/revisions/20e1fd747a5c?raw)
