---
title: "Place Order"
method: POST
path: "/api/v1/order/place"
tags: ["Trade"]
---

# Place Order

`POST /api/v1/order/place`

## Request

- Base URL: `https://api.ekiden.fi`
- URL: `https://api.ekiden.fi/api/v1/order/place`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/ekidenfi/apis/ekiden-gateway/docs/api/v1/order/place/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new order

## Request body

- PlaceOrderRequest: Request to place an order.
  - `close_on_trigger` boolean
  - `expire_time` string, date-time, nullable
  - `margin_mode` 'Cross' | 'Isolated', required
  - `order_link_id` string
  - `order_type` 'Limit' | 'Market', required: Order type: Limit, Market.
  - `post_only` boolean
  - `price` string, required
  - `qty` string, required
  - `reduce_only` boolean
  - `side` 'Sell' | 'Buy', required: Order side: buy or sell.
  - `slippage_tolerance` union
    - object
      - `tick_size` integer, required
    - object
      - `percent` number, double, required
  - `smp_group` integer, nullable: Self-match prevention group id. Orders with the same `(user_id, smp_group)` are eligible for SMP checks.
  - `smp_type` 'CancelMaker' | 'CancelTaker' | 'CancelBoth': Self Match Prevention strategy.
  - `sub_account_address` string, required
  - `symbol` string, required
  - `time_in_force` union, required: Time in Force instructions.
    - 'GTC': Good Till Cancel
    - 'IOC': Immediate or Cancel
    - 'FOK': Fill or Kill
    - object: Good Till Date
      - `GTD` integer, required: Good Till Date
    - 'Day': Good For Day
  - `tpsl` TpSl
    - `mode` 'Full' | 'Partial', required
    - `stop_loss` union
      - object
        - `market` object, required
          - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
          - `trigger_price` string, required
      - object
        - `limit` object, required
          - `limit_price` string, required
          - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
          - `trigger_price` string, required
    - `take_profit` union
      - object
        - `market` object, required
          - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
          - `trigger_price` string, required
      - object
        - `limit` object, required
          - `limit_price` string, required
          - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
          - `trigger_price` string, required
  - `trigger` ConditionalOrder
    - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
    - `trigger_direction` 'Up' | 'Down', required
    - `trigger_price` string, required: The price level that activates the order.

## Response `200`

Order placed

- PlaceOrderResponse: Response for placing an order.
  - `order_id` string, uuid, required
  - `order_link_id` string

## Changes

- **2026-07-14** `8af7c5b6108c`: 3 info
  - the request property `close_on_trigger` became optional
  - the request property `post_only` became optional
  - the request property `reduce_only` became optional
- **2026-01-29** `16fe50636aa5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/changes/api/v1/order/place/post.md)

---

[API](https://skmtc.dev/ekidenfi/apis/ekiden-gateway.md) - [All operations](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/llms.txt) - [OpenAPI document](https://skmtc.dev/ekidenfi/apis/ekiden-gateway/revisions/fad9eecaba2e?raw)
