---
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 (in wei, 18 decimals)
    - `takerAmount` number, required — Amount the maker wants in return (in wei, 18 decimals)
    - `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, required — EIP-712 signature of order details
    - `signatureType` 0 | 1 | 2 | 3, required — Signature type (0-3)
  - `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

## 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 (in wei, 18 decimals)
    - `takerAmount` number, required — Amount the maker wants in return (in wei, 18 decimals)
    - `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, required — EIP-712 signature of order details
    - `signatureType` 0 | 1 | 2 | 3, required — Signature type (0-3)
  - `makerMatches` MakerMatch[] — Maker matches if order was matched immediately

## 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-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-service-production.skmtc.workers.dev/v1/apis/limitless-labs-group/limitless-exchange-api/revisions/57db5c3f80ff/schema)
