Skip to main content

Get IPOs

API to retrieve a list of IPOs available on Indian exchanges. By default it returns currently open IPOs. Use the status and issue_type parameters to filter by lifecycle stage or market segment.

Use the id from each listing item as the path parameter in Get IPO Details to fetch the full data for that IPO — including price band, lot size, event timeline, registrar info, and live subscription figures.

IPO lifecycle

An IPO moves through four stages. The status parameter maps directly to these stages:

StatusDescription
upcomingIPO is announced but the bidding window has not opened. Price band and dates may not be finalised yet.
openBidding is active. Investors can apply during this period.
closedBidding has ended. Allotment and refund processing is underway.
listedShares are trading on the exchange.

Issue types

Issue typeDescription
regularMainboard IPO. Larger companies listed on NSE/BSE under standard SEBI norms.
smeSmall and Medium Enterprise IPO. Listed on NSE Emerge or BSE SME under relaxed eligibility criteria.

Query Parameters

NameRequiredTypeDescription
statusfalsestringIPO status filter. Allowed values: open, closed, listed, upcoming.
Default: open.
issue_typefalsestringIssue type filter. Allowed values: regular (mainboard IPOs), sme (SME IPOs).
Default: It returns both.
page_numberfalseintegerPage number for pagination.
Default: 1.
recordsfalseintegerNumber of IPO records to return per page.
Default: 20. Maximum: 30.

Request

curl --location 'https://api.upstox.com/v2/ipos?status=open&issue_type=regular&page_number=1&records=30' \
--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": "yaashvi-jewellers-limited-ipo",
"symbol": "YAASHVI",
"name": "Yaashvi Jewellers IPO",
"status": "open",
"isin": "INE1T6L01010",
"issue_type": "sme",
"issue_size": 44,
"industry": "Diamond & Jewellery",
"minimum_price": 83,
"maximum_price": 83,
"bidding_start_date": "2026-05-25",
"bidding_end_date": "2026-05-27",
"total_subscription": "0.0"
},
{
"id": "m-r-maniveni-foods-limited-ipo",
"symbol": "MANIVENI",
"name": "M R Maniveni Foods IPO",
"status": "open",
"isin": "INE0YD301010",
"issue_type": "sme",
"issue_size": 27,
"industry": "Consumer Food",
"minimum_price": 51,
"maximum_price": 52,
"bidding_start_date": "2026-05-22",
"bidding_end_date": "2026-05-26",
"total_subscription": "1.27"
}
],
"meta_data": {
"page": {
"page_number": 1,
"total_pages": 1,
"records": 2,
"total_records": 2
}
}
}
NameTypeDescription
statusstringOutcome of the request. Possible values: success, error.
dataarrayArray of IPO objects matching the filter criteria.
data[].idstringUnique identifier for the IPO (e.g., hero-fincorp-ipo). Use this as the {id} path parameter in Get IPO Details.
data[].symbolstringStock exchange ticker symbol.
data[].namestringFull name of the IPO.
data[].statusstringCurrent IPO status. Possible values: open, closed, listed, upcoming.
data[].isinstringInternational Securities Identification Number of the company.
data[].issue_typestringIssue type. Possible values: regular (mainboard), sme.
data[].issue_sizenumberTotal issue size in crores (INR).
data[].industrystringIndustry sector of the company.
data[].minimum_pricenumberMinimum price of the price band (in INR). 0 if not yet announced.
data[].maximum_pricenumberMaximum price of the price band (in INR). 0 if not yet announced.
data[].bidding_start_datestringBidding open date in YYYY-MM-DD format.
data[].bidding_end_datestringBidding close date in YYYY-MM-DD format.
data[].total_subscriptionstringOverall subscription multiple as a decimal string (e.g., "10.0" means 10x subscribed).
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 IPOs matching the filter.

Sample Code

import requests

url = 'https://api.upstox.com/v2/ipos'
params = {
'status': 'open',
'issue_type': 'regular',
'page_number': 1,
'records': 30
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}

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