API Reference
Documentation

The IPO Alerts API is organized around REST and has predictable resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Endpoint

The base endpoint for the API is https://api.ipoalerts.in/ (opens in a new tab).

Rate Limiting

For security purposes, all endpoints are rate-limited and allow 6 requests / minute. You can expect to receive an HTTP 429: Too Many Requests error on breaching this limit. A typical error looks like:

{
  "status": "429",
  "title": "Too Many Requests",
  "detail": "You are exceeding the permitted number of requests allowed per minute.",
  "meta": {
    "quotaPerMinute": 6,
    "expiresIn": 54518
  }
}

Resources

Get All IPOs

Returns a list of all IPOs with details such as opening and closing dates, issue size, price band, and more.

curl --location 'https://api.ipoalerts.in/ipos'

Response Format

The response format for all API calls is in JSON.

A typical successful response looks like:

{
  ipos: [
    {
      "id": "12345",
      "slug": "ipo_slug",
      "infoUrl": "https://zerodha.com/ipo/some-url",
      "name": "Some IPO",
      "startDate": "2022-05-10",
      "endDate": "2022-05-12",
      "listingDate": "2022-05-24",
      "priceRange": "595-630",
      "minQty": 23,
      "status": "closed"
    }
  ]
}

Usage Examples

NodeJs (Axios)
const axios = require('axios');
 
let config = {
  method: 'get',
  maxBodyLength: Infinity,
  url: 'https://api.ipoalerts.in/ipo',
  headers: { }
};
 
axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
Python (Requests)
import requests
 
url = "https://api.ipoalerts.in/ipo"
 
payload={}
headers = {}
 
response = requests.request("GET", url, headers=headers, data=payload)
 
print(response.text)
Swift (URLSession)
var request = URLRequest(url: URL(string: "https://api.ipoalerts.in/ipo")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
 
let task = URLSession.shared.dataTask(with: request) { data, response, error in 
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}
 
task.resume()
Java (OkHttp)
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://api.ipoalerts.in/ipo")
  .method("GET", body)
  .build();
Response response = client.newCall(request).execute();