GET/ipos/orders/:order_id
Get IPO Order Details
API to retrieve a single IPO application by its application ID. The response contains the same fields as Get IPO Orders, returned as a single object instead of a paginated array.
Use this endpoint to poll one application after applying for ipo — for example, to confirm that payment_status has moved to mandate_accepted once the applicant approves the UPI mandate.
For the meaning of the status, order_status, and payment_status values, see the status tables on Get IPO Orders.
Path Parameters
| Name | Required | Type | Description |
|---|---|---|---|
| order_id | Required | string | IPO application ID. Obtain it from data.order_id in Apply IPO or data[].order_id in Get IPO Orders. |
Request
curl --location 'https://api.upstox.com/v2/ipos/orders/UPROYAL00000003' \
--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.
Responses
- 200
- 4XX
Response Body
{
"status": "success",
"data": {
"id": "deepak-builders-engineers-india-ipo",
"symbol": "DBEIL",
"exchange": "nse",
"order_id": "UPROYAL00000003",
"status": "ipo_allotted",
"order_status": "allotted",
"payment_status": "mandate_accepted",
"category": "IND",
"issue_type": "regular",
"reason": "alloted",
"upi": "91xxxxxxxx@ybl",
"upi_amount_blocked": "14819",
"nse_submitted_date": "2026-07-21T08:14:20",
"bse_submitted_date": "2026-07-21T08:14:20",
"mandate_approved_date": "2026-07-21T09:02:11",
"rejection_date": null,
"mandate_rejection_date": null,
"cancel_requested_date": null,
"cancel_accepted_date": null,
"units_allotted": 73,
"bids": [
{
"quantity": 30,
"price": 150.3,
"amount": 4509,
"message": "Bid accepted"
}
],
"created_at": "2026-07-21T08:14:18",
"last_updated_at": "2026-07-30T17:36:36"
}
}
| Name | Type | Description |
|---|---|---|
| status | string | Outcome of the request. Possible values: success, error, partial_success. |
| data.id | string | Identifier of the IPO the application was placed against. Pass it to Get IPO Details. |
| data.symbol | string | Stock exchange ticker symbol of the issuer. |
| data.exchange | string | Exchange the application was submitted to. |
| data.order_id | string | Application ID. Pass it as the order_id path parameter to Cancel IPO Order. |
| data.status | string | Lifecycle stage of the application. See Application status. |
| data.order_status | string | Outcome of the application. See Order status. |
| data.payment_status | string | State of the UPI mandate backing the application. See Payment status. |
| data.category | string | Investor category the application was placed under. IND (individual) and HNI can be applied for; EMP appears on employee-quota applications. |
| data.issue_type | string | Issue type of the IPO. Possible values: regular (mainboard), sme. |
| data.reason | string | Free-text reason from the exchange or registrar explaining the current status. null when none was returned. |
| data.upi | string | UPI ID the mandate was raised against. |
| data.upi_amount_blocked | string | Amount blocked in the applicant's bank account for this application (in INR), returned as a string. "0" until the mandate is approved. |
| data.nse_submitted_date | string | Timestamp of submission to NSE in YYYY-MM-DDTHH:MM:SS format. null if not submitted there. |
| data.bse_submitted_date | string | Timestamp of submission to BSE in YYYY-MM-DDTHH:MM:SS format. null if not submitted there. |
| data.mandate_approved_date | string | Timestamp at which the UPI mandate was approved. null until approved. |
| data.rejection_date | string | Timestamp at which the application was rejected. null unless rejected. |
| data.mandate_rejection_date | string | Timestamp at which the UPI mandate was rejected. null unless rejected. |
| data.cancel_requested_date | string | Timestamp at which cancellation was requested. null unless a cancellation was raised. |
| data.cancel_accepted_date | string | Timestamp at which the cancellation completed. null unless the cancellation was accepted. |
| data.units_allotted | integer | Number of shares allotted. 0 until allotment completes, and on applications that were not allotted. |
| data.bids | array | Bids submitted with this application. |
| data.bids[].quantity | integer | Number of shares bid for. |
| data.bids[].price | number | Bid price per share (in INR). |
| data.bids[].amount | number | Value of the bid (in INR), calculated as quantity × price. |
| data.bids[].message | string | Message returned by the exchange for this bid. null when none was returned. |
| data.created_at | string | Timestamp at which the application was created, in YYYY-MM-DDTHH:MM:SS format. |
| data.last_updated_at | string | Timestamp at which the application was last updated, in YYYY-MM-DDTHH:MM:SS format. |
Error codes
| Error code | Description |
|---|---|
| UDAPI1226 | id is required - The application ID is missing from the request. Obtain it from Get IPO Orders or the Apply IPO response. |
Sample Code
- Python
- Node.js
- Java
- PHP
import requests
order_id = 'UPROYAL00000003'
url = f'https://api.upstox.com/v2/ipos/orders/{order_id}'
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}
response = requests.get(url, headers=headers)
print(response.json())
const axios = require('axios');
const orderId = 'UPROYAL00000003';
axios.get(`https://api.upstox.com/v2/ipos/orders/${orderId}`, {
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}
}).then(response => console.log(response.data))
.catch(error => console.error('Error:', error));
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class GetIpoOrder {
public static void main(String[] args) throws Exception {
String orderId = "UPROYAL00000003";
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("https://api.upstox.com/v2/ipos/orders/" + orderId))
.header("Accept", "application/json")
.header("Authorization", "Bearer {your_access_token}")
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$orderId = 'UPROYAL00000003';
$url = "https://api.upstox.com/v2/ipos/orders/{$orderId}";
$headers = [
'Accept: application/json',
'Authorization: Bearer {your_access_token}'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_errno($ch) ? print('Error: ' . curl_error($ch)) : print($response);
curl_close($ch);
?>