Skip to main content
GET 

/ipos/orders

Get IPO Orders

API to retrieve IPO applications ordered newest first. Each record contains the submitted bids, the status of the UPI mandate backing the application, the exchange submission timestamps, and the allotment outcome once available. To read a single application by its ID, use the Get IPO Order Details

Application status

The status field tracks the lifecycle stage of the application.

StatusDescription
awaiting_mandateThe application reached the exchange and is waiting for the applicant to approve the UPI mandate.
ipo_allottedAllotment completed and shares were allotted. Check units_allotted for the quantity.
ipo_not_allottedAllotment completed and no shares were allotted. The blocked amount is released.
application_deletedThe application was cancelled, either by the user through Cancel IPO Order or by the exchange.

Order status

The order_status field records the outcome of the application.

Order statusDescription
scheduledThe application is waiting for the applicant to approve the UPI mandate or it is not yet confirmed with the exchange.
successThe application was accepted by the exchange. Allotment has not been processed yet.
allottedShares were allotted against this application.
not_allottedNo shares were allotted against this application.

Payment status

The payment_status field reflects the state of the UPI mandate that blocks the application amount.

Payment statusDescription
pendingThe mandate request has been raised and is awaiting approval in the applicant's UPI app.
mandate_acceptedThe mandate was approved and the application amount is blocked in the bank account.

The status, order_status, and payment_status fields are returned as free-form strings rather than fixed enums. The values above are the ones currently returned; handle unrecognised values gracefully.

Query Parameters

NameRequiredTypeDescription
page_numberOptionalintegerPage number for pagination, starting at 1.
Default: 1.
recordsOptionalintegerNumber of application records to return per page.
Default: 10. Maximum: 30.

Request

curl --location 'https://api.upstox.com/v2/ipos/orders?page_number=1&records=10' \
--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

Response Body

{
"status": "success",
"data": [
{
"id": "mandb-engineering-limited-ipo",
"symbol": "MANDB",
"exchange": "nse",
"order_id": "UPCHK500000020",
"status": "awaiting_mandate",
"order_status": "success",
"payment_status": "pending",
"category": "IND",
"issue_type": "regular",
"reason": null,
"upi": "91xxxxxxxx@ybl",
"upi_amount_blocked": "0",
"nse_submitted_date": "2026-08-10T10:14:20",
"bse_submitted_date": null,
"mandate_approved_date": null,
"rejection_date": null,
"mandate_rejection_date": null,
"cancel_requested_date": null,
"cancel_accepted_date": null,
"units_allotted": 0,
"bids": [
{
"quantity": 20,
"price": 385,
"amount": 7700,
"message": null
}
],
"created_at": "2026-08-10T10:14:18",
"last_updated_at": "2026-08-10T10:14:20"
},
{
"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"
}
],
"meta_data": {
"page": {
"page_number": 1,
"total_pages": 1,
"records": 2,
"total_records": 2
}
}
}
NameTypeDescription
statusstringOutcome of the request. Possible values: success, error, partial_success.
dataarrayIPO applications belonging to the authenticated user.
data[].idstringIdentifier of the IPO the application was placed against. Pass it to Get IPO Details.
data[].symbolstringStock exchange ticker symbol of the issuer.
data[].exchangestringExchange the application was submitted to.
data[].order_idstringApplication ID. Pass it as the order_id path parameter to Get IPO Order Details and Cancel IPO Order.
data[].statusstringLifecycle stage of the application. See Application status.
data[].order_statusstringOutcome of the application. See Order status.
data[].payment_statusstringState of the UPI mandate backing the application. See Payment status.
data[].categorystringInvestor category the application was placed under. IND (individual) and HNI can be applied for; EMP appears on employee-quota applications.
data[].issue_typestringIssue type of the IPO. Possible values: regular (mainboard), sme.
data[].reasonstringFree-text reason from the exchange or registrar explaining the current status. null when none was returned.
data[].upistringUPI ID the mandate was raised against.
data[].upi_amount_blockedstringAmount 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_datestringTimestamp of submission to NSE in YYYY-MM-DDTHH:MM:SS format. null if not submitted there.
data[].bse_submitted_datestringTimestamp of submission to BSE in YYYY-MM-DDTHH:MM:SS format. null if not submitted there.
data[].mandate_approved_datestringTimestamp at which the UPI mandate was approved. null until approved.
data[].rejection_datestringTimestamp at which the application was rejected. null unless rejected.
data[].mandate_rejection_datestringTimestamp at which the UPI mandate was rejected. null unless rejected.
data[].cancel_requested_datestringTimestamp at which cancellation was requested. null unless a cancellation was raised.
data[].cancel_accepted_datestringTimestamp at which the cancellation completed. null unless the cancellation was accepted.
data[].units_allottedintegerNumber of shares allotted. 0 until allotment completes, and on applications that were not allotted.
data[].bidsarrayBids submitted with this application.
data[].bids[].quantityintegerNumber of shares bid for.
data[].bids[].pricenumberBid price per share (in INR).
data[].bids[].amountnumberValue of the bid (in INR), calculated as quantity × price.
data[].bids[].messagestringMessage returned by the exchange for this bid. null when none was returned.
data[].created_atstringTimestamp at which the application was created, in YYYY-MM-DDTHH:MM:SS format.
data[].last_updated_atstringTimestamp at which the application was last updated, in YYYY-MM-DDTHH:MM:SS format.
meta_data.page.page_numberintegerCurrent page number returned.
meta_data.page.total_pagesintegerTotal number of pages available.
meta_data.page.recordsintegerNumber of records in the current page.
meta_data.page.total_recordsintegerTotal number of applications on the account.

Sample Code

import requests

url = 'https://api.upstox.com/v2/ipos/orders'
params = {
'page_number': 1,
'records': 10
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}

response = requests.get(url, params=params, headers=headers)
print(response.json())