---
title: "IPO detail"
method: GET
path: "/v1/ipos/{ipo_slug}"
tags: ["ipos"]
---

# IPO detail

`GET /v1/ipos/{ipo_slug}`

## Request

- Base URL: `https://api.tapetide.com`
- URL: `https://api.tapetide.com/v1/ipos/{ipo_slug}`
- Auth: HTTP bearer

One IPO with its timetable, pricing, issue composition, latest subscription by investor category, listing-day performance, registrar, lead managers and public offer-document links.

## Path parameters

- `ipo_slug` string, required: Slug from `/v1/ipos`, e.g. tonbo-imaging-2026.

## Response `200`

OK. Costs one request unit.

- object
  - `data` Ipo, required
    - `slug` string, required: URL identifier for `/v1/ipos/{ipo_slug}`, derived from the company name and the year bidding opened.
    - `company` string, required: Issuer name.
    - `symbol` string, nullable, required: Stock symbol once listed; null before listing.
    - `isin` string, nullable, required: ISIN when published.
    - `status` 'upcoming' | 'open' | 'closed' | 'listed' | 'announced', required: announced (no dates yet), upcoming, open, closed (bidding over, not yet listed), listed.
    - `board` 'mainboard' | 'sme', nullable, required: mainboard or sme (small and medium enterprise platform).
    - `exchange` string, nullable, required: Listing exchange when published, e.g. NSE or BSE.
    - `open_date` string, nullable, required: First bidding day (YYYY-MM-DD).
    - `close_date` string, nullable, required: Last bidding day (YYYY-MM-DD).
    - `allotment_date` string, nullable, required: Basis-of-allotment date (YYYY-MM-DD).
    - `listing_date` string, nullable, required: Listing date (YYYY-MM-DD); scheduled when not yet listed.
    - `price_band_low` number, nullable, required: Lower end of the price band, INR per share.
    - `price_band_high` number, nullable, required: Upper end of the price band, INR per share.
    - `issue_price` number, nullable, required: Final issue price, INR per share; null until fixed.
    - `lot_size` integer, nullable, required: Shares per bid lot.
    - `issue_size_cr` number, nullable, required: Total issue size in INR crore.
    - `subscription_total` number, nullable, required: Overall subscription, times (e.g. 4.97 = 4.97x). Null until bidding data is published.
    - `listing_price` number, nullable, required: Listing-day open price, INR; null until listed.
    - `listing_gain_pct` number, nullable, required: Listing-day open vs issue price, percent (1.5 = 1.5%).
    - `face_value` number, nullable, required: Face value per share, INR.
    - `fresh_issue_cr` number, nullable, required: Fresh-issue component in INR crore.
    - `offer_for_sale_cr` number, nullable, required: Offer-for-sale component in INR crore.
    - `listing_day_close` number, nullable, required: Listing-day closing price, INR.
    - `listing_day_close_gain_pct` number, nullable, required: Listing-day close vs issue price, percent.
    - `about` string, nullable, required: Issuer business description from the offer document.
    - `registrar` string, nullable, required: Registrar to the issue.
    - `lead_managers` string[], required: Book-running lead managers.
    - `draft_prospectus_url` string, nullable, required: Public URL of the draft red herring prospectus (regulator or exchange site).
    - `prospectus_url` string, nullable, required: Public URL of the red herring prospectus or final prospectus.
    - `subscription` object[], required: Latest subscription by investor category.
      - `category` 'qib' | 'nii' | 'bhni' | 'shni' | 'retail' | 'employee' | 'shareholder' | 'total', required: Investor category: qib (qualified institutional buyers), nii (all non-institutional), bhni/shni (big / small high-net-worth, the two NII sub-buckets), retail, employee, shareholder, total.
      - `times` number, nullable, required: Times subscribed (bids / shares offered), e.g. 6.17 = 6.17x.
      - `as_of` string, nullable, required: When this figure was last updated (ISO-8601, UTC).
  - `meta` SingleMeta, required
    - `as_of` string, date-time, required
    - `route` string, required

## Other responses

- `400`: Malformed or out-of-range parameter. Not charged.
- `401`: Missing or invalid bearer token.
- `404`: The requested resource does not exist. Not charged.
- `429`: Per-minute burst cap (`rate_limited`) or plan quota (`quota_exhausted`) reached.
- `500`: Unexpected server error. Not charged.
- `502`: A data dependency was unavailable. Not charged.
- `503`: Authentication or quota service temporarily unavailable (`service_unavailable`). Not charged; retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/tapetide/apis/tapetide-api.md) · [All operations](https://skmtc.dev/tapetide/apis/tapetide-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tapetide/apis/tapetide-api/revisions/261ec086bde5?raw)
