# Hot IPOs

> Returns the curated list of hot IPO offerings, each with an offering summary and a headline financials snapshot (latest full-year period).

`GET https://api.bavest.co/v2/ipo/hot`

Group: IPO. Route id: `v2_ipo_hot`. Included in: Growth.

## Description

Returns the curated list of hot IPO offerings, each with an offering
summary and a headline financials snapshot (latest full-year period).
Ordered by implied valuation descending, then public filing date
descending. Filter by `symbol`, `status`, or a `from`/`to` public-filing
date range. Supports offset and cursor pagination.

## Authentication

Send your API key in the `x-api-key` header on every request. No key yet? Sign up at https://dashboard.bavest.co/sign-up (free trial). The examples read the key from the `BAVEST_API_KEY` environment variable.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `symbol` | query | string | no | Optional IPO ticker filter (e.g., `SPCX`). Omit for all offerings. |
| `status` | query | string | no | Filter by offering status (e.g. `Expected`, `Priced`, `Listed`). Example when explicitly filtering: `Expected`. |
| `from` | query | string (date) | no | Start date (YYYY-MM-DD) |
| `to` | query | string (date) | no | End date (YYYY-MM-DD) |
| `limit` | query | integer (int32) | no | Maximum number of results to return (default 100, max 1000) Default `100`. |
| `offset` | query | integer (int32) | no | Number of results to skip for pagination (default 0) Default `0`. |
| `cursor` | query | string | no | Opaque cursor for cursor-based pagination. When provided, returns results after the cursor position. Takes precedence over offset. |

## Response

200 Successful response (`application/json`).

| Field | Type | Always present | Description |
|---|---|---|---|
| `data` | array of HotIPORecord | no |  |
| `data[].symbol` | string | yes | Planned ticker symbol. Example: `SPCX`. |
| `data[].name` | string \| null | no | Company name. Example: `Space Exploration Technologies Corp.`. |
| `data[].exchange` | integer \| null | no | Target exchange identifier for the listing. |
| `data[].regulator` | string \| null | no | Filing regulator (e.g. `SEC`) Example: `SEC`. |
| `data[].filingType` | string \| null | no | Filing type (e.g. `S-1`) Example: `S-1`. |
| `data[].status` | string \| null | no | Offering status (e.g. `Expected`, `Priced`, `Listed`) Example: `Expected`. |
| `data[].priceType` | string \| null | no | Pricing mechanism (e.g. `fixed`, `range`) Example: `fixed`. |
| `data[].priceLow` | number (double) \| null | no | Lower bound of the expected price range. Example: `135`. |
| `data[].priceHigh` | number (double) \| null | no | Upper bound of the expected price range. Example: `135`. |
| `data[].currency` | string \| null | no | Offering currency (ISO 4217) Example: `USD`. |
| `data[].numberOfShares` | integer \| null | no | Number of shares offered. Example: `556600000`. |
| `data[].grossProceeds` | number (double) \| null | no | Expected gross proceeds. Example: `75141000000`. |
| `data[].impliedValuation` | number (double) \| null | no | Implied post-offering valuation. Example: `1750000000000`. |
| `data[].confidentialFilingDate` | string (date) \| null | no | Confidential filing date. Example: `2026-04-01`. |
| `data[].publicFilingDate` | string (date) \| null | no | Public filing date. Example: `2026-05-20`. |
| `data[].expectedListingDate` | string (date) \| null | no | Expected listing date, resolved from the listing milestone. Example: `2026-06-12`. |
| `data[].financialsSnapshot` | IPOFinancialsSnapshot \| null | no | Headline financials snapshot, or null when no financials exist. |
| `data[].financialsSnapshot.period` | string \| null | no | Reporting period label (e.g. `FY2025`) Example: `FY2025`. |
| `data[].financialsSnapshot.revenue` | number (double) \| null | no | Total revenue for the period. Example: `18674`. |
| `data[].financialsSnapshot.ebitdaAdjusted` | number (double) \| null | no | Adjusted EBITDA for the period. Example: `6584`. |
| `data[].financialsSnapshot.netIncome` | number (double) \| null | no | Net income for the period. Example: `-4940`. |
| `data[].financialsSnapshot.revenueYoY` | number (double) \| null | no | Year-over-year revenue growth (fraction, e.g. 0.3324 = 33.24%) Example: `0.3324`. |
| `meta` | ResponseMeta | no | Response metadata for paginated endpoints. Offset pagination returns `page`/`pageSize`/`totalPages`/`totalCount`; cursor pagination returns `pageSize`/`hasMore`/`nextCursor` and `totalCount` only when known. |
| `meta.time` | integer | no | Server-side processing time in milliseconds. Example: `17`. |
| `meta.parameters` | object | no | Echo of the request parameters the endpoint resolved. |
| `meta.page` | integer | no | Current page number (offset pagination) Example: `1`. |
| `meta.pageSize` | integer | no | Number of results per page. Example: `50`. |
| `meta.totalPages` | integer | no | Total number of pages (offset pagination) Example: `2`. |
| `meta.totalCount` | integer | no | Total number of results across all pages. Example: `100`. |
| `meta.hasMore` | boolean | no | Whether more results follow (cursor pagination) |
| `meta.nextCursor` | string \| null | no | Cursor for the next page (cursor pagination), null on the last page. |

## Example request

```bash
curl 'https://api.bavest.co/v2/ipo/hot' \
  -H "x-api-key: $BAVEST_API_KEY"
```

## Example response

```json
{
  "data": [
    {
      "symbol": "SPCX",
      "name": "Space Exploration Technologies Corp.",
      "exchange": null,
      "regulator": "SEC",
      "filingType": "S-1",
      "status": "Expected",
      "priceType": "fixed",
      "priceLow": 135,
      "priceHigh": 135,
      "currency": "USD",
      "numberOfShares": 556600000,
      "grossProceeds": 75141000000,
      "impliedValuation": 1750000000000,
      "confidentialFilingDate": "2026-04-01",
      "publicFilingDate": "2026-05-20",
      "expectedListingDate": "2026-06-12",
      "financialsSnapshot": {
        "period": "FY2025",
        "revenue": 18674,
        "ebitdaAdjusted": 6584,
        "netIncome": -4940,
        "revenueYoY": 0.3324
      }
    }
  ],
  "meta": {
    "page": 1,
    "pageSize": 100,
    "totalPages": 1,
    "totalCount": 38,
    "parameters": {
      "limit": "100"
    },
    "time": 2437
  }
}
```

## Errors

| Status | Meaning |
|---|---|
| 400 | Invalid request parameters. Returned when required query parameters are missing, have invalid types, or violate constraints (e.g., providing both symbol and isin when they are mutually exclusive). |
| 401 | Missing or invalid API key. |
| 404 | Resource not found. |
| 429 | Rate limit exceeded. Retry after the `Retry-After` header interval. |
| 500 | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |
| 502 | Upstream data provider returned an error or is temporarily unavailable. Retry after a short delay. |
| 504 | The request timed out waiting for a response from the upstream data provider. This may occur for complex queries or during peak load. |
| default | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |

- `403` from the gateway: the API key is invalid or switched off.
- `429` with message `Limit Exceeded`: the monthly quota of the key is used up. With `Too Many Requests`: the key is throttled, or this route is not in the key's plan. Wait for `Retry-After` when it is sent.

## Links

- HTML page: https://dashboard.bavest.co/docs/v2_ipo_hot
- OpenAPI: https://dashboard.bavest.co/openapi.json (YAML: https://dashboard.bavest.co/openapi.yaml)
- Authentication: https://dashboard.bavest.co/docs/authentication.md
- MCP server for AI agents: https://dashboard.bavest.co/docs/mcp.md
- All routes: https://dashboard.bavest.co/llms.txt
