Skip to main content

REST API Trading - Place SPOT Stop order

Place SPOT Stop order

Written by Albert
Updated today

Place SPOT Stop order

POST /frontoffice/api/v3/stop-orders

Summary

Use this method to create and submit a new Stop order for SPOT markets.

Request

Header parameters

accountId required

The trading account identifier.

Body

order object

Order creation data.

order.marketId string

The market identifier, in the following format: {marketType}.{baseAssetId}_{quoteAssetId}, for example: spot.btc_usdt.

Must match one of the available markets returned by the Get markets endpoint.

order.side string

The order side, indicating the direction of the trade.

Possible values:

  • Buy

  • Sell

order.orderType string

The order type.

Possible values:

  • Market

  • Limit

order.timeInForce string

The time-in-force policy for the order, controlling its lifetime.

Possible values:

  • Gtc

  • Ioc

  • Fok

  • Gtd

  • Day

order.requestedAmount decimal string

The quantity of the base asset to buy or sell.

For Market orders, this represents the total base amount to fill; the executed amount may be lower if liquidity is insufficient.

order.requestedPrice decimal string | nullable

The limit price for Limit orders (the maximum price for a buy or minimum price for a sell).

Must be null or omitted for Market orders.

activationPrice decimal string | nullable

The trigger price that activates the Stop order.

order.cancellationDate string | nullable

For GTD orders: The date and time when the order will be automatically canceled if not executed, in the following format: YYYY-MM-DDTHH:MM:SS.sssZ.

Required if timeInForce is set to Gtd; ignored for other time-in-force values.

Request example

POST /frontoffice/api/v3/stop-orders HTTP/1.1
Host: {host}
Authorization: Bearer JWT
accountId: {accountId}
Content-Type: application/json; x-api-version=4.0
Accept: */*

{
"order": {
"marketId": "spot.btc_usdt",
"side": "Buy",
"orderType": "Market",
"activationPrice": 128000,
"requestedAmount": 0.01,
"timeInForce": "Ioc"
}
}

Response

In case of success, an object will be returned.

Each object contains the following information:

order object

The created order.

order.marketId string

The market identifier, same as in the request.

order.marketDisplayName string

The market ticker.

order.orderId string

The unique identifier of the order assigned by the system.

order.orderType string

The order type, same as in the request.

order.side string

The order side, same as in the request.

order.requestedPrice decimal string | nullable

The limit price for Limit orders, same as in the request; null for market orders.

activationPrice decimal string | nullable

The trigger price that activates the Stop order, same as in the request.

order.requestedAmount decimal string

The quantity of the base asset to buy or sell, same as in the request.

order.timeInForce string

The time-in-force policy, same as in the request.

order.status string

The current order status.

Possible values:

  • WaitingForActivation

  • Activated

  • Rejected

order.createdAt string

The timestamp when the order was created, in the following format: YYYY-MM-DDTHH:MM:SS.sssZ.

order.updatedAt string

The timestamp of the most recent update to the order, in the following format: YYYY-MM-DDTHH:MM:SS.sssZ.

order.cancellationDate string | nullable

The timestamp when the order was cancelled or expired, in the following format: YYYY-MM-DDTHH:MM:SS.sssZ; null if not cancelled.

Response example β€” 200: OK

{
"order": {
"marketId": "spot.btc_usdt",
"marketDisplayName": "SPOT BTC/USDT",
"orderId": "01K2MNC3BVR5WRTBEE9YWAS91K",
"orderType": "Market",
"side": "Buy",
"requestedPrice": "0",
"activationPrice": "128000",
"requestedAmount": "0.01",
"timeInForce": "Ioc",
"status": "WaitingForActivation",
"createdAt": "2025-08-14T16:07:25.8193038Z",
"updatedAt": "2025-08-14T16:07:25.8193044Z",
"cancellationDate": null
}
}

Did this answer your question?