Skip to main content

Place GTT Orderโ€‹

Good Till Triggered (GTT) order is a condition-based order that remains active until the defined condition (rule) is met. A rule is a precise condition that determines when the system should execute an order. This order can be executed as a single-leg or multi-leg operation, with each leg scheduled to place an order based on a specific rule. Once the condition is met, the order is placed automatically.

Single-Leg Triggerโ€‹

This order uses one rule to place an order when the condition is satisfied. The opening strategy is called ENTRY, where you define a condition to BUY or SELL a stock when the price is above, below, or equal to the trigger price. Once the order is placed, the GTT is complete.

Multi-Leg Triggerโ€‹

This order involves more than one rule and includes follow-up actions. The ENTRY strategy remains the same as in the Single-Leg Trigger, but additional actions can be set.

You can follow the ENTRY strategy with:

  • TARGET: A condition to exit the position once the desired price level is reached.
  • STOPLOSS: A condition to exit the position when the price moves unfavorably beyond a set threshold.

For example, if your ENTRY is a BUY, the TARGET and STOPLOSS will be SELL orders, and vice versa.

Trailing Stop Loss Order Betaโ€‹

A trailing stop loss order is a dynamic order that automatically adjusts with market price movements, maintaining a consistent distance from the current market price as it moves.

Trailing Stop Loss (TSL) orders are implemented as Multi-leg GTT orders and in the STOPLOSS leg an additional parameter trailing_gap is required. This defines the consistent gap between your stop-loss and the market price, letting your stop-loss trail automatically. For more details on TSL orders, refer to our Trailing Stop Loss Order article.

Requestโ€‹

curl --location 'https://api.upstox.com/v3/order/gtt/place' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_access_token}' \
--data '{
"type": "SINGLE",
"quantity": 1,
"product": "D",
"rules": [
{
"strategy": "ENTRY",
"trigger_type": "ABOVE",
"trigger_price": 6
}
],
"instrument_token": "NSE_EQ|INE669E01016",
"transaction_type": "BUY"
}'

For additional samples in various languages, please refer to the Sample code section on this page.

Request Bodyโ€‹

NameRequiredTypeDescription
typetruestringSpecifies the GTT order type. Indicates if it's a single or multi-leg order.
Possible values: SINGLE, MULTIPLE.
quantitytrueintegerQuantity with which the order is to be placed.
producttruestringSignifies if the order was either Intraday, Delivery or MTF.
Possible values: I, D, MTF.
instrument_tokentruestringKey of the instrument. For the regex pattern applicable to this field, see the Field Pattern Appendix.
transaction_typetruestringIndicates whether its a buy or sell order.
Possible values: BUY, SELL.
rulestruearrayContains the conditions under which the order should be triggered.
rules[].strategytruestringDefines the role of the rule.
Possible values: ENTRY, TARGET, STOPLOSS

ENTRY - The initial condition to place a BUY or SELL order when the trigger price is met. Having an ENTRY rule is mandatory.
TARGET - A condition to exit the position once the desired price level is reached after the ENTRY order is executed.
STOPLOSS - A condition to exit the position when the price moves unfavorably beyond a set threshold.
rules[].trigger_typetruestringSpecifies the condition for triggering the order. The ENTRY strategy can have ABOVE, BELOW, or IMMEDIATE, whereas TARGET and STOPLOSS strategies can only have IMMEDIATE.
Possible values: BELOW, ABOVE, IMMEDIATE

BELOW - The order is triggered when the market price drops below the defined trigger price.
ABOVE - The order is triggered when the market price rises above the defined trigger price.
IMMEDIATE - Limit order at user-specified price is sent immediately to the exchange irrespective of the LTP. This order is valid for a day. If the primary leg gets completed then SL and Target legs are valid for 365 days.
rules[].trigger_pricetruefloatThe price at which the order should be triggered based on the defined condition.
rules[].trailing_gapfalsefloatOnly applicable for STOPLOSS strategy for TSL orders. This defines the consistent gap between your stop-loss and the market price, letting your stop-loss trail automatically.
Note: The minimum value for trailing gap is 10% of difference between LTP and stop loss trigger price.

Responses

Response Bodyโ€‹

{
"status": "success",
"data": {
"gtt_order_ids": ["GTT-CU25280200021013"]
},
"metadata": {
"latency": 88
}
}
NameTypeDescription
statusstringA string indicating the outcome of the request.
Possible values: success, error
dataobjectResponse data for place order request
data.gtt_order_ids[]stringAn array holding the GTT Order ID for the request placed
metadataobjectMetadata information.
metadata.latencyintegerThe overall time taken by API platform to process the request, measured in milliseconds.

Sample Codeโ€‹

Place Single Leg GTT Orderโ€‹

curl --location 'https://api.upstox.com/v3/order/gtt/place' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_access_token}' \
--data '{
"type": "SINGLE",
"quantity": 1,
"product": "D",
"rules": [
{
"strategy": "ENTRY",
"trigger_type": "ABOVE",
"trigger_price": 6
}
],
"instrument_token": "NSE_EQ|INE669E01016",
"transaction_type": "BUY"
}'

Place Multiple Leg GTT Orderโ€‹

curl --location 'https://api.upstox.com/v3/order/gtt/place' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_access_token}' \
--data '{
"type": "MULTIPLE",
"quantity": 1,
"product": "I",
"rules": [
{
"strategy": "ENTRY",
"trigger_type": "ABOVE",
"trigger_price": 7.3
},
{
"strategy": "TARGET",
"trigger_type": "IMMEDIATE",
"trigger_price": 9
},
{
"strategy": "STOPLOSS",
"trigger_type": "IMMEDIATE",
"trigger_price": 6
}
],
"instrument_token": "NSE_EQ|INE669E01016",
"transaction_type": "BUY"
}'

Place Trailing Stop Loss GTT Orderโ€‹

curl --location 'https://api.upstox.com/v3/order/gtt/place' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_access_token}' \
--data '{
"type": "MULTIPLE",
"quantity": 1,
"product": "I",
"rules": [
{
"strategy": "ENTRY",
"trigger_type": "ABOVE",
"trigger_price": 7.3
},
{
"strategy": "TARGET",
"trigger_type": "IMMEDIATE",
"trigger_price": 9
},
{
"strategy": "STOPLOSS",
"trigger_type": "IMMEDIATE",
"trigger_price": 6,
"trailing_gap": 0.1
}
],
"instrument_token": "NSE_EQ|INE669E01016",
"transaction_type": "BUY"
}'
Loading...