Indian IPO Tracker - SEBI DRHP, GMP & Listing API
Under maintenancePricing
from $50.00 / 1,000 ipo records
Indian IPO Tracker - SEBI DRHP, GMP & Listing API
Under maintenanceTrack every Indian mainboard & SME IPO from DRHP to listing. Multi-source GMP, live subscription, webhook alerts on lifecycle changes.
Pricing
from $50.00 / 1,000 ipo records
Rating
0.0
(0)
Developer
Ujjawal Yadav
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Indian IPO Tracker — SEBI, GMP & Listing Data
Every Indian IPO from DRHP filing to listing pop — one normalized feed, real-time webhooks, zero spreadsheet work.
Track the full lifecycle of every Indian mainboard and SME IPO in a single Apify Dataset. Connect it to Google Sheets, Slack, Make, or n8n in minutes.
Quick start (one click)
Select "Track all current IPOs" in the preset dropdown and hit Start. Results appear in 1–2 minutes. That's it.
{ "preset": "track_all_current" }
No other fields required. This single input gives you every active Indian IPO with all sources enabled and sensible rate limits.
What you get per IPO
| Field group | What's inside |
|---|---|
| Lifecycle status | DRHP_FILED → SEBI_APPROVED → SUBSCRIPTION_OPEN → LISTED — always know what stage an IPO is in |
| DRHP / RHP details | Filing date, PDF URL (HEAD-verified when verify_drhp_pdf:true), issue size, price band, lot size, fresh issue vs OFS split. Issue size / fresh-issue vs OFS split / face value / promoter list are populated from BSE/NSE/RHP after RHP filing — DRHP cover-page content extraction is on the roadmap (parse_drhp_cover, separate plan). |
| Subscription | QIB / NII / retail multiples at each day's close + full timeline history |
| Grey Market Premium | Reconciled GMP from InvestorGain + Chittorgarh + IPO Watch, with per-source breakdown and disagreement score |
| Listing day | BSE + NSE opening price, listing pop %, D+1 and D+7 close |
| SME IPOs | BSE SME and NSE Emerge coverage alongside mainboard |
| Source attribution | Every field carries {source, captured_utc, source_url} — full audit chain |
Sample output record
{"ipo_id": "ZEPTO-2026-IPO-XXXXXXXX","company_name": "Zepto","current_status": "SUBSCRIPTION_OPEN","lifecycle": {"drhp_filed_date": "2025-11-14","subscription_open_date": "2026-05-06","subscription_close_date": "2026-05-08","listing_date": "2026-05-13"},"issue_details": {"issue_size_cr": 3600,"price_band_lower": 255,"price_band_upper": 270,"lot_size": 55},"subscription": {"qib_subscription_x": 4.2,"nii_subscription_x": 2.1,"retail_subscription_x": 1.8,"total_subscription_x": 2.9,"timeline": [{ "captured_utc": "2026-05-06T11:00:00Z", "total_x": 0.3, "source": "bse" },{ "captured_utc": "2026-05-07T11:00:00Z", "total_x": 1.4, "source": "bse" }]},"grey_market": {"current_gmp": 32,"gmp_per_source": { "investorgain": 30, "chittorgarh": 33, "ipowatch": 33 },"disagreement_score": 0.05},"schema_version": "1.0.1"}
Webhook alerts
Set a webhook_url and webhook_secret and the Actor POSTs a signed JSON payload whenever something changes. No polling required.
Events you can subscribe to:
| Event | When it fires |
|---|---|
lifecycle_status_change | IPO moves to a new stage (SEBI approved, RHP filed, listing day, etc.) |
gmp_threshold_crossed | GMP changes by ≥ N% since the last snapshot |
listing_pop_calculated | Listing opening price captured |
subscription_milestone_crossed | Total subscription crosses 1×, 5×, or 10× |
subscription_acceleration_detected | Day-over-day subscription jumps ≥ 3× (NII pile-on signal) |
coverage_gap_detected | A source returns significantly fewer records than its baseline |
Minimal webhook input:
{"preset": "track_all_current","webhook_url": "https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK","webhook_secret": "your-32-character-or-longer-secret","webhook_events_subscribed": ["lifecycle_status_change", "gmp_threshold_crossed"]}
Payloads are HMAC-SHA256 signed via the X-IPO-Tracker-Signature: sha256=<hex> header.
// Node.js — verify the signatureimport { createHmac, timingSafeEqual } from 'crypto';function verify(body, header, secret) {const expected = createHmac('sha256', secret).update(body).digest('hex');return timingSafeEqual(Buffer.from(expected), Buffer.from(header.replace('sha256=', '')));}
# Python — verify the signatureimport hmac, hashlibdef verify(body: bytes, header: str, secret: str) -> bool:expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()return hmac.compare_digest(expected, header.removeprefix("sha256="))
Integrations
| Tool | How |
|---|---|
| Google Sheets | Apify → Google Sheets integration — sync dataset rows to a sheet automatically |
| Slack | Set webhook_url to a Slack incoming webhook URL — get IPO alerts in any channel |
| Make (Integromat) | Apify trigger module → fan results into 1,000+ apps |
| n8n | Apify Cloud node — run Actor + consume dataset in any workflow |
| Zapier | Apify Zap → 7,000+ Zapier integrations |
Pricing
This Actor uses Apify's pay-per-event model — you only pay for what you use.
| Event | Price |
|---|---|
ipo-record-returned | $0.05 per record |
lifecycle-status-change-detected | $0.10 per event |
gmp-threshold-crossed | $0.10 per event |
listing-pop-calculated | $0.10 per event |
subscription-milestone-crossed | $0.10 per event |
subscription-acceleration-detected | $0.20 per event |
webhook-delivered-ok | $0.05 per delivery |
coverage-gap-detected | $0.10 per event |
Typical run cost (28 active IPOs, no events): $1.40. Daily schedule: ~$42/month.
Free trial: First 5 ipo-record-returned events per account per month are free — run once and check the output before subscribing.
Run modes
| Preset | Best for |
|---|---|
| Track all current IPOs | Daily schedule — incremental refresh of all active IPOs |
| GMP only | Fastest run — only grey-market premium, no lifecycle scraping |
| Track a specific IPO | Deep-dive on one company by ipo_id |
| Listed IPOs post-mortem | Research on recently listed IPOs |
| Custom | Full control over every advanced field |
Data sources
| Source | What it contributes |
|---|---|
| SEBI public-issues portal | Canonical DRHP filing date + PDF URL |
| BSE forthcoming issues | Price band, lot size, subscription multiples (mainboard) |
| BSE SME platform | SME IPO lifecycle and issue details |
| NSE upcoming issues | Cross-reference + listing prices + live subscription |
| NSE Emerge | SME IPO supplementary data |
| InvestorGain, Chittorgarh, IPO Watch | Grey Market Premium (three independent sources, reconciled) |
All sources are publicly accessible. Data is scraped politely via residential Indian proxies.
Limitations
- Subscription data captured once per day (after bid close, ~16:30 IST), not intraday.
- SEBI confidential pre-filings are tracked by count only until SEBI exposes a queryable endpoint.
- DRHP PDF cover-page parsing (issue size, fresh-issue/OFS split, face value, promoters, registrar) is on the roadmap (
parse_drhp_coverflag, separate plan). Theverify_drhp_pdfflag does HTTP HEAD only; it does not parse content. mode: prospectus_parserequires that at least one default-mode run (track_all_current/incremental/full) has already populated the Postgresipostable. A standalone first run exits cleanly withqueue_size: 0.
Roadmap
- v1.1 — GMP accuracy backtest (MAE per publisher over trailing 50 IPOs), expanded backfill
- v2.0 — DRHP/RHP structured data: 3-year financials, peer comparison table, use of proceeds, promoter holding, lock-in schedule
- v2.1 — Basis of Allotment data, anchor quality scoring, live peer comparison enrichment
- v3.0 — Lock-in exit tracker, bulk/block deal monitoring, post-listing performance tracking
Compliance & disclaimers
All scraped data is publicly available. SEBI public-issues filings are statutorily required to be public. Grey Market Premium is unofficial, unregulated data published by third-party websites — it is surfaced for informational purposes only. This is not investment advice. We do not endorse or facilitate grey-market trading.
Support
Open an issue on the project repository or contact via the Apify Store listing page.