# 🇸🇬🚀 Singapore SGX IPO Calendar — Mainboard + Catalist (`nexgendata/sg-sgx-ipo-calendar`) Actor

Track every SGX IPO — Mainboard + Catalist — with listing status (Upcoming/Priced/Trading/Withdrawn/Delisted), board, sector, IPO price (SGD), shares, proceeds, valuation, lead managers, cornerstones, prospectus URL and post-listing return. Bloomberg/Refinitiv/The Edge Singapore alternative.

- **URL**: https://apify.com/nexgendata/sg-sgx-ipo-calendar.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, E-commerce
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 singapore sgx ipo records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🇸🇬🚀 Singapore SGX IPO Calendar — Mainboard & Catalist Listings

Track every Singapore Exchange (SGX) IPO — Mainboard and Catalist — from announcement through pricing, listing day, post-listing trading and ultimate delisting. Returns the company's legal name, ticker, current lifecycle stage (Upcoming / Priced / Trading / Withdrawn / Delisted), listing board (Mainboard or Catalist), GICS-style sector, business description, IPO and pricing dates, offer price in SGD, shares offered, gross proceeds, post-money valuation, full lead-manager syndicate (DBS, OCBC, UOB Kay Hian, Maybank Securities, CGS-CIMB, PrimePartners, SAC Capital, RHT Capital, etc.), cornerstone-investor list (GIC, AIA, Lion Global, Eastspring, Affin Hwang, Aberdeen Standard, JPMorgan AM, etc.), prospectus URL, current SGX market price, current market cap, and total return from IPO.

### 📊 Sample Output

[![🇸🇬🚀 Singapore SGX IPO Calendar — Mainboard + Catalist sample output — 🇸🇬🚀 Singapore SGX IPO Calendar — Mainboard + Catalist, premium API, JSON output, NexGenData premium dataset for analysts, hedge fu](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/sg-sgx-ipo-calendar-output.png)](https://apify.com/nexgendata/sg-sgx-ipo-calendar)

SGX is a small but high-value primary market: roughly 5-30 IPOs per year across Mainboard and Catalist, dominated by S-REITs and business trusts (NetLink NBN Trust, Manulife US REIT, Daiwa House Logistics Trust, Digital Core REIT, United Hampshire US REIT, NTT DC REIT) plus a long tail of niche Catalist offerings in F&B, medtech, façade engineering, solar EPC, conservation contracting, eldercare and HR SaaS. Since 2018 the Mainboard universe has shrunk from ~750 to ~620 names as privatisations and voluntary delistings (SPH, PetroFirst, M1) have outpaced new listings — making the **withdrawal / delisting side of this dataset structurally as important as the upcoming pipeline.**

This actor is part of the **NexGenData Apify fleet** — Singapore-specific data covers ~26% of NexGenData traffic and is anchored on official, authoritative sources: SGX listing announcements, MAS OPERA prospectus registry, CDP allotment-result notices, The Edge Singapore, Business Times and Channel News Asia IPO coverage.

---

### What you get per row

Each dataset row is a single SGX IPO event:

- **`company_name`** — issuer legal name (e.g. `NTT DC REIT`, `Aztech Global`, `Nanofilm Technologies International`, `NetLink NBN Trust`)
- **`ticker_symbol`** — SGX ticker (e.g. `CJLU` for NetLink NBN Trust, `MZH` for Nanofilm, `BTOU` for Manulife US REIT)
- **`listing_status`** — `Upcoming`, `Priced`, `Trading`, `Withdrawn`, or `Delisted`
- **`listing_board`** — `Mainboard` (senior board, quantitative entry tests, MAS-supervised sponsors) or `Catalist` (sponsor-supervised growth board)
- **`sector`** — Technology / Healthcare / Financials / Consumer / Industrials / Energy / Real Estate / Materials / Communication Services / Utilities
- **`business_description`** — 1-2 line plain-English summary of what the issuer actually does
- **`ipo_date`** — listing (first-trading) date in ISO-8601 (`YYYY-MM-DD`)
- **`priced_date`** — date the offer price was finalised (typically 5-7 days before `ipo_date`)
- **`withdrawn_date`** — date the IPO was pulled (Withdrawn) or the privatisation took effect (Delisted)
- **`ipo_price_sgd`** — offer price in SGD (USD-denominated US-REITs converted at listing-day FX)
- **`shares_offered`** — number of units / shares in the offering
- **`proceeds_sgd_million`** — gross proceeds raised, SGD millions
- **`valuation_sgd_million`** — post-money market cap at listing, SGD millions
- **`lead_managers`** — list of book-runners / global coordinators / Catalist sponsors
- **`cornerstone_investors`** — list of cornerstone investors (Singapore IPOs are heavily cornerstoned; ~60-80% of Mainboard offer size is typically pre-placed)
- **`prospectus_url`** — link to the MAS OPERA prospectus filing
- **`current_price_sgd`** — latest SGX market price
- **`current_market_cap_sgd_million`** — current market cap, SGD millions
- **`gain_loss_from_ipo_pct`** — total return from IPO price (signed percentage)
- **`data_source`** — provenance tag

---

### Filters

- **`listing_status`** — `all` / `Upcoming` / `Priced` / `Trading` / `Withdrawn` / `Delisted`
- **`listing_board`** — `all` / `Mainboard` / `Catalist`
- **`sector`** — `all` / Technology / Healthcare / Financials / Consumer / Industrials / Energy / Real Estate / Materials / Communication Services / Utilities
- **`ipo_date_from`** / **`ipo_date_to`** — YYYY-MM-DD window on the effective IPO / withdrawal date
- **`min_proceeds_sgd_million`** — gross-proceeds floor (e.g. `100` to keep institutional-grade Mainboard deals only)
- **`limit`** — 1-200 records returned (premium per-record pricing)

---

### 8 use cases

1. **Forward IPO calendar for buy-side allocators** — `{"listing_status": "Upcoming"}` returns the next 3-12 months of announced SGX listings with offer-price range, lead managers and known cornerstone book. Use for primary-allocation pitching and book-build positioning.
2. **REIT IPO league-table research** — `{"listing_board": "Mainboard", "sector": "Real Estate", "min_proceeds_sgd_million": 100}` returns every Mainboard REIT IPO with size — the bread-and-butter of the SGX primary market.
3. **Catalist deal-flow tracking** — `{"listing_board": "Catalist", "ipo_date_from": "2024-01-01"}` returns recent Catalist offerings — the SaaS / medtech / specialist-contractor pipeline most active since 2024.
4. **Withdrawn / postponed deals (market-tone gauge)** — `{"listing_status": "Withdrawn"}` returns deals pulled before listing — a leading indicator of choppy primary-market sentiment.
5. **Delisting / privatisation watch** — `{"listing_status": "Delisted"}` returns Mainboard departures (SPH, PetroFirst, etc.) — central to understanding the structural shrinkage of the SGX Mainboard universe since 2018.
6. **Cornerstone-investor flow mapping** — scan `cornerstone_investors` across recent Mainboard deals to map which sovereign / asset-manager (GIC, AIA, Eastspring, Lion Global, Affin Hwang) is actually putting cornerstone tickets on SGX REIT and Industrial IPOs.
7. **Post-IPO return cohort study** — `gain_loss_from_ipo_pct` lets quants and family offices build SGX-IPO-vintage performance studies (e.g. the 2020-2021 cohort returns are heavily negative; the 2025 Catalist micro-cap cohort is mixed).
8. **Lead-manager market-share analysis** — count appearances in `lead_managers` to size DBS vs OCBC vs Maybank vs PrimePartners vs SAC Capital league tables on a deal-by-deal or board-by-board basis.

---

### How this compares to commercial alternatives

| Source | Coverage | Cost | Latency | API access | Notes |
|---|---|---|---|---|---|
| **Bloomberg Terminal (EQS, NI IPO)** | Global IPO calendar incl. SGX | USD ~2,400 / seat / month | Real-time | Heavy infra, BPIPE | Best in class, but seat cost is prohibitive for SG-only research |
| **Refinitiv Eikon / LSEG Workspace (IFR)** | Global league tables + SGX deals | USD ~1,800-2,200 / seat / month | Real-time | LSEG Datastream | League-table data is excellent, but no flat per-record pricing |
| **SGX official website (sgx.com)** | Mainboard + Catalist listing announcements | Free | Hours-to-days | None (JS-rendered, no public API) | Authoritative but unscrapable at scale; PDF-heavy; no consolidated history |
| **The Edge Singapore Premium** | Editorial coverage + IPO database | SGD ~480 / year | Same-day | None | Strong narrative + cornerstone reporting; no machine-readable export |
| **MAS OPERA prospectus registry** | Every prospectus lodged with MAS | Free | Filing-day | None (search UI only) | Authoritative source of truth on offering terms — but PDF-only, no API |
| **This actor (`nexgendata/sg-sgx-ipo-calendar`)** | Mainboard + Catalist, 2020+ + forward calendar + selected mega-history (NetLink, Manulife US REIT, FLCT) | **$0.01 actor start + $0.20 / IPO record** | Per-version refresh | REST + Apify SDK + MCP | Flat per-record pricing; no seat cost; clean schema; ideal for SG-only desks, family offices, fintechs |

A typical 25-record run costs **about $5** — orders of magnitude below a single seat-month of Bloomberg or Refinitiv. Family offices, RFMC fund managers, fintech KYC stacks, and regional research desks get the same primary-market ground-truth without paying for global coverage they don't need.

---

### Coverage

- **Mainboard**: every major Mainboard IPO from 2016 onwards plus the 2026 forward calendar (NTT DC REIT, Centurion Accommodation REIT). Selected historical mega-deals (NetLink NBN Trust 2017, Manulife US REIT 2016, Frasers Logistics & Industrial Trust 2016) are kept as reference rows.
- **Catalist**: every Catalist IPO from 2020 onwards (Lum Chang Creations, Attika Engineering, Goodwill Entertainment, Singapore Institute of Advanced Medicine, Pasture Holdings, MultiPV, Mooreast, Econ Healthcare, Don Agro and more).
- **Withdrawn**: deals pulled before listing (Pollux Properties 2023, selected 2022-2024 tech postponements).
- **Delisted**: representative Mainboard departures (SPH 2022, PetroFirst 2018) — central to the SGX structural-shrinkage narrative.
- **Upcoming (2026)**: NTT DC REIT, Centurion Accommodation REIT, Info-Tech Systems and any other deals lodged with MAS OPERA as of the latest version refresh.

---

### Pricing

Pay-per-event:

- **Actor start** — $0.01 per run
- **SGX IPO record** — $0.20 per row (primary event)

A 5-record smoke costs **$1.01**. A 25-record full-history pull costs **$5.01**. A 100-record exhaustive pull costs **$20.01**. There is no monthly minimum, no seat license, and no PDF parsing surcharge.

---

### Companion actors in the NexGenData fleet

For end-to-end Singapore + ASEAN institutional research, pair this actor with:

- 🇸🇬🏠 **`nexgendata/sg-hdb-resale-prices`** — Singapore HDB resale flat transactions from data.gov.sg (the public-housing counterpart for residential-property research).
- 🇸🇬🏢 **`nexgendata/sg-ura-property-transactions`** — URA private-residential transactions (condos, ECs, GCBs) — cross-check the property pipelines feeding S-REIT IPOs.
- 🇸🇬🏦 **`nexgendata/sg-mas-financial-institutions`** — MAS-licensed banks, fund managers, CMS holders and insurers — verify the lead-manager / cornerstone counterparties on every SGX deal.
- 🇸🇬📈 **`nexgendata/sgx-singapore-stock-screener`** — SGX listed-equity screener — track post-IPO trading, dividend yields, valuation multiples on every name returned by this actor.
- 🌐🚀 **`nexgendata/ipo-tracker`** — global IPO calendar (NYSE / Nasdaq / HKEX / LSE / TSE) — put SGX deals into a regional book-build context.
- 🛠️ **`nexgendata/finance-mcp-server`** — MCP server exposing the entire NexGenData fleet to Claude / ChatGPT / Cursor for agentic IPO and primary-market research workflows.

---

### Data freshness

The packaged SGX IPO dataset is refreshed when the actor version is republished (see `actor.json` version). Upcoming-calendar entries are checked against MAS OPERA filings and SGX listing announcements ahead of every release.

---

### Compliance and ethics

All data in this actor is drawn from public regulatory and exchange sources (SGX listing announcements, MAS OPERA prospectus registry, CDP allotment notices, public press coverage). No login-walled, member-only or paywalled content is scraped. Anti-bot risk is LOW — SGX is government-affiliated and the underlying listing announcements are explicitly published for unrestricted dissemination.

This actor is **not** investment advice. SGX IPOs are subject to MAS prospectus rules; consult a licensed financial adviser before subscribing to any offering.


---

### Sister Actors in the NexGenData Fleet

APAC and Singapore-focused companions:

| Use case | Actor |
|----------|-------|
| SGX listed-equity screener (post-IPO follow-through) | [sgx-singapore-stock-screener](https://apify.com/nexgendata/sgx-singapore-stock-screener) |
| MAS-licensed banks, fund managers & insurers | [sg-mas-financial-institutions](https://apify.com/nexgendata/sg-mas-financial-institutions) |
| ACRA-registered Singapore companies | [singapore-acra-companies](https://apify.com/nexgendata/singapore-acra-companies) |
| HDB resale flat prices | [sg-hdb-resale-prices](https://apify.com/nexgendata/sg-hdb-resale-prices) |
| URA private-property transactions | [sg-ura-property-transactions](https://apify.com/nexgendata/sg-ura-property-transactions) |
| Singapore data.gov.sg multi-dataset feed | [sg-datagov-multi-dataset](https://apify.com/nexgendata/sg-datagov-multi-dataset) |
| Hong Kong Companies Registry CR lookup | [hk-companies-registry](https://apify.com/nexgendata/hk-companies-registry) |
| India MCA registered companies | [india-mca-companies](https://apify.com/nexgendata/india-mca-companies) |


---


---

### Sister Actors in the NexGenData Fleet

APAC and Singapore-focused companions:

| Use case | Actor |
|----------|-------|
| SGX listed-equity screener (post-IPO follow-through) | [sgx-singapore-stock-screener](https://apify.com/nexgendata/sgx-singapore-stock-screener) |
| MAS-licensed banks, fund managers & insurers | [sg-mas-financial-institutions](https://apify.com/nexgendata/sg-mas-financial-institutions) |
| ACRA-registered Singapore companies | [singapore-acra-companies](https://apify.com/nexgendata/singapore-acra-companies) |
| HDB resale flat prices | [sg-hdb-resale-prices](https://apify.com/nexgendata/sg-hdb-resale-prices) |
| URA private-property transactions | [sg-ura-property-transactions](https://apify.com/nexgendata/sg-ura-property-transactions) |
| Singapore data.gov.sg multi-dataset feed | [sg-datagov-multi-dataset](https://apify.com/nexgendata/sg-datagov-multi-dataset) |
| Hong Kong Companies Registry CR lookup | [hk-companies-registry](https://apify.com/nexgendata/hk-companies-registry) |
| India MCA registered companies | [india-mca-companies](https://apify.com/nexgendata/india-mca-companies) |

### About NexGenData

NexGenData publishes 220+ buyer-intent actors covering SEC filings, YC alumni, Delaware DOC, global stock screeners across 30+ exchanges, IPO calendars, IP and patent intelligence, FDA approvals, B2B lead generation, and more. Every actor is pay-per-result with no seat licensing.

#### Apify affiliate program — free credits + 30% off

Sign up to Apify via our referral link and you'll get:

- **Free starter credits** to test this actor and the rest of our 220+ actor fleet
- **30% off platform fees** for the life of your account

**[Browse the full NexGenData catalog and sign up here](https://apify.com/nexgendata?fpr=2ayu9b)** — same Apify, same actors, just cheaper for you.

*Built and maintained by NexGenData.*

# Actor input Schema

## `listing_status` (type: `string`):

Filter SGX IPOs by lifecycle stage. 'Upcoming' = announced but not yet priced (red herring filed, roadshow open). 'Priced' = offer-price set, allotment + Channel News Asia coverage; usually a 1-3 day window before the first trading day. 'Trading' = listed and changing hands on SGX Mainboard or Catalist. 'Withdrawn' = registration pulled before listing (relatively common in choppy SG markets — e.g. tech IPO postponements 2022-2024). 'Delisted' = previously listed, now removed (privatisation, takeover, voluntary delisting — a major SGX-specific theme since 2018 with the Mainboard universe shrinking from ~750 to ~620 names). 'all' returns every listing status. SGX typically prices 5-15 IPOs/year on Catalist and 1-5/year on Mainboard since 2020; this dataset covers 2020-2026.
## `listing_board` (type: `string`):

SGX has two boards. 'Mainboard' is the senior board — quantitative entry tests (S$30M PAT or S$150M market cap profit-test track), continuous-listing-obligations, MAS-supervised sponsors. 'Catalist' is the sponsor-supervised growth board (no quantitative entry test; sponsor underwrites suitability) — most SGX IPOs since 2020 are Catalist (think SaaS, medtech, F&B, niche industrial). Cross-border secondary listings (Hongkong Land, Jardine Matheson) are Mainboard-only. 'all' returns both boards.
## `sector` (type: `string`):

Filter by sector classification (loose GICS mapping — SGX itself uses ICB, but consumers usually want GICS). 'Technology' (most-traded SG IPO sector since 2020 — Aztech, iWow, Singapore Institute of Advanced Medicine, Pasture Holdings), 'Healthcare' (Mooreast, Acrophyte Hospitality on AHT side; medical-device SPACs), 'Financials' (Prime US REIT, United Hampshire US REIT — REITs dominate Mainboard listings), 'Consumer' (No Signboard Holdings, Don Agro), 'Industrials' (NetLink NBN Trust, Manulife US REIT-adjacent infra), 'Energy' (PetroFirst Infrastructure Partners pre-delisting), 'Real Estate' (the Singapore IPO bread-and-butter — S-REITs, business trusts), 'Materials', 'Communication Services', 'Utilities'. 'all' = no filter.
## `ipo_date_from` (type: `string`):

Lower bound on the IPO listing date (or planned date for Upcoming, withdrawal date for Withdrawn). ISO-8601 format e.g. '2024-01-01'. The packaged SGX IPO dataset covers 2020-01-01 onwards plus the forward calendar of announced 2026 listings. Pair with `ipo_date_to` to bound a window — e.g. '2024-01-01' to '2024-12-31' for full-year-2024 SGX IPOs. Leave empty for no lower bound.
## `ipo_date_to` (type: `string`):

Upper bound on the IPO listing date in ISO-8601 format e.g. '2026-12-31'. Pair with `ipo_date_from` to bound the window. Useful for surfacing a single year's vintage of SGX IPOs, or for studying the post-2022-rate-hike Catalist freeze. Leave empty for no upper bound (includes the forward calendar of pending Upcoming listings).
## `min_proceeds_sgd_million` (type: `number`):

Lower bound on gross IPO proceeds in SGD millions. Use to filter out micro-cap Catalist offerings. Typical thresholds: '10' = small Catalist, '50' = sizeable Catalist / small Mainboard, '100' = institutional-grade Mainboard, '500' = mega-deal (NetLink NBN Trust, Frasers Hospitality Trust, Manulife US REIT class). Leave 0 for no lower bound.
## `limit` (type: `integer`):

Hard cap on total SGX IPO records returned (1-200). Each IPO is one dataset row. Premium pricing applies per row ($0.20/IPO record — institutional-grade IPO data, low-volume / high-value). The SGX IPO universe is small (~5-30 IPOs/year), so most useful runs are limit=20-100. Records are sorted by ipo_date descending (most recent first), with Upcoming listings surfaced ahead of Trading.

## Actor input object example

```json
{
  "listing_status": "all",
  "listing_board": "all",
  "sector": "all",
  "min_proceeds_sgd_million": 0,
  "limit": 5
}
````

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "listing_status": "all",
    "listing_board": "all",
    "sector": "all",
    "ipo_date_from": "",
    "ipo_date_to": "",
    "min_proceeds_sgd_million": 0,
    "limit": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/sg-sgx-ipo-calendar").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "listing_status": "all",
    "listing_board": "all",
    "sector": "all",
    "ipo_date_from": "",
    "ipo_date_to": "",
    "min_proceeds_sgd_million": 0,
    "limit": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/sg-sgx-ipo-calendar").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "listing_status": "all",
  "listing_board": "all",
  "sector": "all",
  "ipo_date_from": "",
  "ipo_date_to": "",
  "min_proceeds_sgd_million": 0,
  "limit": 5
}' |
apify call nexgendata/sg-sgx-ipo-calendar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/sg-sgx-ipo-calendar",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇸🇬🚀 Singapore SGX IPO Calendar — Mainboard + Catalist",
        "description": "Track every SGX IPO — Mainboard + Catalist — with listing status (Upcoming/Priced/Trading/Withdrawn/Delisted), board, sector, IPO price (SGD), shares, proceeds, valuation, lead managers, cornerstones, prospectus URL and post-listing return. Bloomberg/Refinitiv/The Edge Singapore alternative.",
        "version": "0.0",
        "x-build-id": "7U669cz7M99koozwu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~sg-sgx-ipo-calendar/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-sg-sgx-ipo-calendar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~sg-sgx-ipo-calendar/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-sg-sgx-ipo-calendar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~sg-sgx-ipo-calendar/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-sg-sgx-ipo-calendar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "listing_status": {
                        "title": "Listing status",
                        "enum": [
                            "all",
                            "Upcoming",
                            "Priced",
                            "Trading",
                            "Withdrawn",
                            "Delisted"
                        ],
                        "type": "string",
                        "description": "Filter SGX IPOs by lifecycle stage. 'Upcoming' = announced but not yet priced (red herring filed, roadshow open). 'Priced' = offer-price set, allotment + Channel News Asia coverage; usually a 1-3 day window before the first trading day. 'Trading' = listed and changing hands on SGX Mainboard or Catalist. 'Withdrawn' = registration pulled before listing (relatively common in choppy SG markets — e.g. tech IPO postponements 2022-2024). 'Delisted' = previously listed, now removed (privatisation, takeover, voluntary delisting — a major SGX-specific theme since 2018 with the Mainboard universe shrinking from ~750 to ~620 names). 'all' returns every listing status. SGX typically prices 5-15 IPOs/year on Catalist and 1-5/year on Mainboard since 2020; this dataset covers 2020-2026.",
                        "default": "all"
                    },
                    "listing_board": {
                        "title": "SGX listing board",
                        "enum": [
                            "all",
                            "Mainboard",
                            "Catalist"
                        ],
                        "type": "string",
                        "description": "SGX has two boards. 'Mainboard' is the senior board — quantitative entry tests (S$30M PAT or S$150M market cap profit-test track), continuous-listing-obligations, MAS-supervised sponsors. 'Catalist' is the sponsor-supervised growth board (no quantitative entry test; sponsor underwrites suitability) — most SGX IPOs since 2020 are Catalist (think SaaS, medtech, F&B, niche industrial). Cross-border secondary listings (Hongkong Land, Jardine Matheson) are Mainboard-only. 'all' returns both boards.",
                        "default": "all"
                    },
                    "sector": {
                        "title": "GICS-style sector filter",
                        "enum": [
                            "all",
                            "Technology",
                            "Healthcare",
                            "Financials",
                            "Consumer",
                            "Industrials",
                            "Energy",
                            "Real Estate",
                            "Materials",
                            "Communication Services",
                            "Utilities"
                        ],
                        "type": "string",
                        "description": "Filter by sector classification (loose GICS mapping — SGX itself uses ICB, but consumers usually want GICS). 'Technology' (most-traded SG IPO sector since 2020 — Aztech, iWow, Singapore Institute of Advanced Medicine, Pasture Holdings), 'Healthcare' (Mooreast, Acrophyte Hospitality on AHT side; medical-device SPACs), 'Financials' (Prime US REIT, United Hampshire US REIT — REITs dominate Mainboard listings), 'Consumer' (No Signboard Holdings, Don Agro), 'Industrials' (NetLink NBN Trust, Manulife US REIT-adjacent infra), 'Energy' (PetroFirst Infrastructure Partners pre-delisting), 'Real Estate' (the Singapore IPO bread-and-butter — S-REITs, business trusts), 'Materials', 'Communication Services', 'Utilities'. 'all' = no filter.",
                        "default": "all"
                    },
                    "ipo_date_from": {
                        "title": "IPO date from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Lower bound on the IPO listing date (or planned date for Upcoming, withdrawal date for Withdrawn). ISO-8601 format e.g. '2024-01-01'. The packaged SGX IPO dataset covers 2020-01-01 onwards plus the forward calendar of announced 2026 listings. Pair with `ipo_date_to` to bound a window — e.g. '2024-01-01' to '2024-12-31' for full-year-2024 SGX IPOs. Leave empty for no lower bound."
                    },
                    "ipo_date_to": {
                        "title": "IPO date to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Upper bound on the IPO listing date in ISO-8601 format e.g. '2026-12-31'. Pair with `ipo_date_from` to bound the window. Useful for surfacing a single year's vintage of SGX IPOs, or for studying the post-2022-rate-hike Catalist freeze. Leave empty for no upper bound (includes the forward calendar of pending Upcoming listings)."
                    },
                    "min_proceeds_sgd_million": {
                        "title": "Minimum gross proceeds (SGD millions)",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "number",
                        "description": "Lower bound on gross IPO proceeds in SGD millions. Use to filter out micro-cap Catalist offerings. Typical thresholds: '10' = small Catalist, '50' = sizeable Catalist / small Mainboard, '100' = institutional-grade Mainboard, '500' = mega-deal (NetLink NBN Trust, Frasers Hospitality Trust, Manulife US REIT class). Leave 0 for no lower bound.",
                        "default": 0
                    },
                    "limit": {
                        "title": "Max IPO records returned",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Hard cap on total SGX IPO records returned (1-200). Each IPO is one dataset row. Premium pricing applies per row ($0.20/IPO record — institutional-grade IPO data, low-volume / high-value). The SGX IPO universe is small (~5-30 IPOs/year), so most useful runs are limit=20-100. Records are sorted by ipo_date descending (most recent first), with Upcoming listings surfaced ahead of Trading.",
                        "default": 25
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
