Get Order Details
API to retrieve the latest status of a specific order. Orders placed by the user remain available for one trading day and are automatically removed at the end of the trading session.
Request
curl --location 'https://api.upstox.com/v2/order/details?order_id=240108010445130' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your_access_token}'
For additional samples in various languages, please refer to the Sample code section on this page.
Query Parameters
| Name | Required | Type | Description |
|---|---|---|---|
| order_id | false | string | The order reference ID for which the order status is required. For the regex pattern applicable to this field, see the Field Pattern Appendix. |
Responses
- 200
- 4XX
Response Body
{
"status": "success",
"data": {
"exchange": "NSE",
"product": "D",
"price": 571.0,
"quantity": 1,
"status": "complete",
"tag": null,
"instrument_token": "NSE_EQ|INE062A01020",
"placed_by": "******",
"trading_symbol": "SBIN-EQ",
"tradingsymbol": "SBIN-EQ",
"order_type": "LIMIT",
"validity": "DAY",
"trigger_price": 0.0,
"disclosed_quantity": 0,
"transaction_type": "BUY",
"average_price": 570.95,
"filled_quantity": 1,
"pending_quantity": 0,
"status_message": null,
"status_message_raw": null,
"exchange_order_id": "1300000025660919",
"parent_order_id": null,
"order_id": "231019025562880",
"variety": "SIMPLE",
"order_timestamp": "2023-10-19 13:25:13",
"exchange_timestamp": "2023-10-19 13:25:13",
"is_amo": false,
"order_request_id": "1",
"order_ref_id": "GTT-C23191000044253"
}
}
| Name | Type | Description |
|---|---|---|
| status | string | A string indicating the outcome of the request. Typically success for successful operations. |
| data | object | Response data for order Book |
| data.exchange | string | Exchange to which the order is associated. Valid exchanges can be found in the Exchange Appendix |
| data.product | string | Signifies if the order was either Intraday, Delivery or CO. Possible values: I, D, CO, MTF. |
| data.price | float | Price at which the order was placed |
| data.quantity | int32 | Quantity with which the order was placed |
| data.status | string | Indicates the current status of the order. Valid order statuses can be found in the Order Status Appendix |
| data.tag | string | Tag to uniquely identify an order |
| data.instrument_token | string | Key of the instrument. For the regex pattern applicable to this field, see the Field Pattern Appendix. |
| data.placed_by | string | Uniquely identifies the user (commonly referred as UCC) |
| data.trading_symbol | string | Shows the trading symbol of the instrument |
| data.order_type | string | Type of order. It can be one of the following MARKET refers to market order LIMIT refers to Limit Order SL refers to Stop Loss Limit SL-M refers to Stop Loss Market. Possible values: MARKET, LIMIT, SL, SL-M. |
| data.validity | string | It can be one of the following - DAY(default), IOC. Possible values: DAY, IOC. |
| data.trigger_price | float | If the order was a stop loss order then the trigger price set is mentioned here |
| data.disclosed_quantity | int32 | The quantity that should be disclosed in the market depth |
| data.transaction_type | string | Indicates whether its a buy or sell order. Possible values: BUY, SELL. |
| data.average_price | float | Average price at which the qty got traded |
| data.filled_quantity | int32 | The total quantity traded from this particular order |
| data.pending_quantity | int32 | Pending quantity to be filled |
| data.status_message | string | Indicates the reason when any order is rejected, not modified or cancelled |
| data.status_message_raw | string | Description of the order's status as received from RMS |
| data.exchange_order_id | string | Unique order ID assigned by the exchange for the order placed |
| data.parent_order_id | string | In case the order is part of the second of a CO, the parent order ID is indicated here |
| data.order_id | string | Unique order ID assigned internally for the order placed |
| data.variety | string | Order complexity |
| data.order_timestamp | string | User readable timestamp at which the order was placed |
| data.exchange_timestamp | string | User readable time at which the order was placed or updated |
| data.is_amo | boolean | Signifies if the order is an After Market Order |
| data.order_request_id | string | Apart from 1st order it shows the count of how many requests were sent |
| data.order_ref_id | string | Uniquely identifies an order for internal usage. |
Error codes
| Error code | Description |
|---|---|
| UDAPI1010 | Order id accepts only alphanumeric characters and '-'. - The order id you've provided isn't accepted. |
| UDAPI100059 | At least one of 'order_id' or 'tag' is required to fetch order details. - When attempting to retrieve order details, you must provide either the 'order_id' or the 'tag'. Without at least one of these identifiers, the system cannot locate and present the specific order information you're seeking. |
| UDAPI100010 | Order not found - The system couldn't locate the order you're referring to. |
Sample Code
Get order details for an order number
- Python
- Node.js
- Java
- PHP
- Python SDK
- Node.js SDK
- Java SDK
import requests
url = 'https://api.upstox.com/v2/order/details'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}
params = {'order_id': '240108010445130'}
response = requests.get(url, headers=headers, params=params)
print(response.text)
const axios = require('axios');
const url = 'https://api.upstox.com/v2/order/details';
const headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your_access}'
};
const params = {
order_id: '240108010445130'
};
axios.get(url, { headers, params })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String url = "https://api.upstox.com/v2/order/details";
String accept = "application/json";
String authorization = "Bearer {your_access_token}";
String orderId = "240108010445130";
try {
HttpClient httpClient = HttpClient.newHttpClient();
// Build the URI with query parameters
URI uri = URI.create(url + "?order_id=" + orderId);
// Build the request
HttpRequest request = HttpRequest.newBuilder()
.uri(uri)
.header("Content-Type", "application/json")
.header("Accept", accept)
.header("Authorization", authorization)
.GET()
.build();
// Send the request and get the response
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
// Print the response
System.out.println("Response Code: " + response.statusCode());
System.out.println("Response: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?php
$url = 'https://api.upstox.com/v2/order/details?order_id=240108010445130';
$headers = array(
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer {your_access_token}'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "Response Code: " . $httpCode . PHP_EOL;
echo "Response: " . $response . PHP_EOL;
?>
import upstox_client
from upstox_client.rest import ApiException
configuration = upstox_client.Configuration()
configuration.access_token = "{your_access_token}"
api_instance = upstox_client.OrderApi(upstox_client.ApiClient(configuration))
try:
api_response = api_instance.get_order_status(order_id="2410170106208487")
print(api_response)
except ApiException as e:
print("Exception when calling OrderApi->get order status: %s\n" % e.body)
let UpstoxClient = require('upstox-js-sdk');
let defaultClient = UpstoxClient.ApiClient.instance;
var OAUTH2 = defaultClient.authentications['OAUTH2'];
OAUTH2.accessToken = "{your_access_token}";
let apiInstance = new UpstoxClient.OrderApi();
let optsOrderStatus = {
orderId: "241017010620465"
};
apiInstance.getOrderStatus(optsOrderStatus,(error,data,response) => {
if (error) {
console.error(error.response.text);
} else {
console.log('API called successfully. Returned data: ' + JSON.stringify(data));
}
})
import com.upstox.ApiClient;
import com.upstox.ApiException;
import com.upstox.Configuration;
import com.upstox.api.GetOrderDetailsResponse;
import com.upstox.auth.OAuth;
import io.swagger.client.api.OrderApi;
public class Main {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
OAuth OAUTH2 = (OAuth) defaultClient.getAuthentication("OAUTH2");
OAUTH2.setAccessToken("{your_access_token}");
OrderApi apiInstance = new OrderApi();
try {
GetOrderDetailsResponse result = apiInstance.getOrderStatus("241017010620466");
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling OrderApi#cancelMultiOrder= " + e.getResponseBody());
e.printStackTrace();
}
}
}
Loading...