image

Let’s be honest: tracking Initial Public Offerings (IPOs) programmatically is usually a nightmare. You’re either scraping the SEC EDGAR database (which is painful), parsing messy HTML from financial news sites (which breaks every time they update their CSS), or paying thousands a month for a Bloomberg terminal.

If you’re building a dashboard, a trading bot, or just a notification script to alert you when a new tech stock hits the market, you don't want to parse HTML. You want a clean JSON object.

That’s where the SteadyAPI Calendar endpoint comes in. It standardizes upcoming, priced, and filed IPO data into a simple structure. Here is how to use it to build a lightweight IPO tracker.

Obtain API key

Get your API key


The Endpoint

We are looking at the Calendar Events section of the documentation. Specifically, we want the IPO endpoint.

Docs Link:
SteadyAPI Docs: IPO Calendar Endpoint

Method: GET

URL: https://api.steadyapi.com/v1/markets/calendar/ipo


Authenticating

First, you need your API key. If you don't have one, grab it from your SteadyAPI dashboard. You'll pass this in the header as a Bearer token.


The Code

Let’s write a quick Python script to fetch IPOs for a specific month. The API accepts a date query parameter in the YYYY-MM format.

Here is the setup:

import requests
import json

# Configuration
API_KEY = "YOUR_STEADY_API_KEY_HERE"
BASE_URL = "https://api.steadyapi.com/v1/markets/calendar/ipo"

# Define the headers
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Accept": "application/json"
}

# Define parameters (YYYY-MM format)
params = {
    "date": "2023-11" 
}

try:
    # Make the request
    response = requests.get(BASE_URL, headers=headers, params=params)
    response.raise_for_status() # Check for HTTP errors
    
    data = response.json()
    
    # Check if we got data back
    if data['meta']['status'] == 200:
        ipo_list = data['body']
        
        print(f"Found {len(ipo_list)} IPOs for {params['date']}:\n")
        
        for ipo in ipo_list:
            ticker = ipo.get('proposedTickerSymbol', 'N/A')
            name = ipo.get('companyName')
            price = ipo.get('proposedSharePrice')
            date = ipo.get('pricedDate')
            status = ipo.get('dealStatus')
            
            print(f"[{ticker}] {name}")
            print(f"   Status: {status}")
            print(f"   Price: ${price}")
            print(f"   Date: {date}")
            print("-" * 30)
            
    else:
        print("API returned an error:", data)

except requests.exceptions.RequestException as e:
    print(f"Request failed: {e}")

What the Data Looks Like

When you hit the endpoint, you aren't getting a wall of text. You get a structured list. Here is an example of the JSON response you will receive.

Example Response:

{
  "meta": {
    "version": "v1.0",
    "status": 200,
    "copywrite": "https://steadyapi.com",
    "date": "2023-11",
    "processedTime": "2023-12-01T01:12:14.365196Z"
  },
  "body": [
    {
      "dealID": "1273030-107900",
      "proposedTickerSymbol": "CLBRU",
      "companyName": "COLOMBIER ACQUISITION CORP. II",
      "proposedExchange": "NYSE",
      "proposedSharePrice": "10.00",
      "sharesOffered": "15,000,000",
      "pricedDate": "11/21/2023",
      "dollarValueOfSharesOffered": "$150,000,000",
      "dealStatus": "Priced"
    },
    {
      "dealID": "1179767-107817",
      "proposedTickerSymbol": "ELAB",
      "companyName": "Elevai Labs Inc.",
      "proposedExchange": "NASDAQ Capital",
      "proposedSharePrice": "4.00",
      "sharesOffered": "1,500,000",
      "pricedDate": "11/21/2023",
      "dollarValueOfSharesOffered": "$6,000,000",
      "dealStatus": "Priced"
    }
  ]
}

Key Fields

  • proposedTickerSymbol
    The ticker symbol expected to begin trading after the IPO

  • companyName
    The name of the company going public

  • proposedExchange
    The listing exchange, such as NYSE or NASDAQ

  • proposedSharePrice
    The expected IPO offering price per share

  • sharesOffered
    The number of shares being issued in the offering

  • pricedDate
    The date the IPO was officially priced

  • dealStatus
    Indicates whether the IPO is Filed, Priced, Withdrawn, or Upcoming


3 Practical Use Cases

Now that you have the data flowing, here is what you can actually build with it:

Slack/Discord Notification Bot:
Run a cron job every morning that checks the endpoint for the current month. Filter the list for pricedDate equal to today's date. If there’s a match, pipe that JSON data into a Discord webhook to alert your trading group that a new ticker is going live today.

Algorithmic Trading Filter:
Many algos avoid trading stocks on their IPO day due to extreme volatility, or conversely, specifically target them for momentum plays. You can use this API to populate a Do Not Trade or Watchlist array in your trading system automatically at the start of every week.

Market Calendar UI:
If you are building a fintech dashboard, you can map the body array directly to a frontend calendar component. Because the data includes the proposedSharePrice and sharesOffered, you can easily calculate the market cap and sort the IPOs by size to highlight the big listings vs. the smaller caps.


Summary

Stop trying to regex the SEC website. By using the SteadyAPI v1/markets/calendar/ipo endpoint, you turn a complex data extraction problem into a simple HTTP GET request. You get the ticker, the exchange, the price, and the date, exactly what you need to track the market.

Learn more or explore other endpoints:
SteadyAPI Stock and Options Data API

How to Get an NHL Roster Using SteadyAPI Oct 12, 2026

How to Get an NHL Roster Using SteadyAPI

Load forwards, defensemen, and goalies for one NHL abbreviation. Player names are objects with a default field.

How to Get an AliExpress Description Using SteadyAPI Oct 12, 2026

How to Get an AliExpress Description Using SteadyAPI

Turn a product-detail description token into ordered text modules. The product id alone is not enough.

How to Find Vehicles for Sale Using SteadyAPI Oct 11, 2026

How to Find Vehicles for Sale Using SteadyAPI

Search vehicle listings by make, model, and ZIP. Price and mileage on each row are numbers.

How to Estimate Vehicle Depreciation Using SteadyAPI Oct 11, 2026

How to Estimate Vehicle Depreciation Using SteadyAPI

Project trade-in value across years from a vehicle id, mileage, and condition. Mileage here is an integer.